当前位置:网站首页>d,cast转换aa为右值
d,cast转换aa为右值
2022-08-11 11:27:00 【fqbqrr】
原文
测试用例:
shared int[int] aa;
void main () {
cast()aa[1] = 1;//违反区间
}
原来工作正常.
你正在aa[1]
上抛弃共享
.该表达式是访问值
,而不是赋值
.与定义opIndex
和opIndexAssign
的结构(表达式调用opIndex
,而不是opIndexAssign
)是一致的.
如果使用cast()(aa[1])=1
,即使在旧版本上也会出现区间错误.为何曾经奏效
?
我认为旧编译器解析其为也适合
新编译器
且无区间错误的(cast()aa)[1]
.
本例,aa
也是immutable
.我知道使它
工作的唯一方法
现在非常丑陋(丢弃不变也许就该丑?):
shared immutable int[int] aa;
void main () {
// (cast()aa)[1] = 1; // 无不变仍工作,
(*cast(int[int]*)(&aa))[1] = 1;//这样?
}
有静态共享构造器
:
shared static this()
{
aa[1] = 1; /*不必强制转换*/
}
但这样不行的:
void f() {
aa[1] = 1; // 错误
}
shared static this()
{
f();//f仍然是模板,模板插件,仍不管用
//在f嵌套函数中不能初化aa不变量
}
如果可在pure
函数中构建数组
的可变版本,则可这样做:
int[int] make_aa() pure
{
int[int] maa;
maa[1] = 1; /*或函数调用等等*/
return maa;
}
immutable int[int] aa;
shared static this()
{
aa = make_aa();
}
如果不能在pure
函数中这样,则可用cast
来这样:aa=cast(immutable)make_aa();
.
从可变
转换为不变
更好,因为无未定义行为
(只要以后不使用可变
引用).丢弃不变
,然后修改
,确实有未定义行为
.
边栏推荐
- 【项目篇- 项目团队部分怎么写、如何作图?(两千字图文总结建议)】创新创业竞赛项目计划书、新苗国创(大创)申报书、挑战杯创业计划竞赛
- 五、一起学习Lua 变量
- 放苹果
- 98转出0转入,985高校土木工程沦为“天坑”引热议
- Jmeter性能测试
- 【2022】【Thesis Notes】Ultra-thin THz deflection based on laser direct writing graphene oxide paper——
- 【黑马早报】抖音否认与头部主播签对赌协议;阿迪达斯CEO承认在中国犯了错;网易云社交App心遇被指涉黄;联通董事长称5G资费比点外卖还便宜
- 文献阅读(185)Co-design
- MySQL --- 存储引擎
- 亏了3000亿,巴菲特:这也叫亏?
猜你喜欢
虚拟机使用 WinSCP & Putty
C语言,怪题小谈
简单记录openguass_exporter对接prometheus通过grafanai来实现可视化监控
性能测试的环境以及测试数据构造
Web3 Entrepreneur's Guide: How to Build a Decentralized Community for Your Product?
EastWave应用:负折射现象实时演示
五分钟教你内网穿透
那些不用写代码也能做游戏的工具
Network Security - nmap
PerfView project (first) : how to find hot spots function
随机推荐
[10点公开课]:AV1编码器的优化及其在流媒体和实时通讯中的应用
1. 类与对象——什么是对象
2022-08-10北京华为OD机试真题分享
Flutter 教程之 Flutter 中的 HMS 定位工具包
What areas of the deep neural network are related to the human brain neural network?
【Opencv】-----倾斜图片转正
五、一起学习Lua 变量
Azure IoT & NVIDIA Jetson 开发基础
工程师如何对待开源 --- 一个老工程师的肺腑之言
98转出0转入,985高校土木工程沦为“天坑”引热议
fiddler双向认证
PL4807-ADJ线性锂电池可调充电芯片
闪灯IC,可按要求开发各种规格闪灯IC,单片机方案开发
从抖音到火山引擎——看流媒体技术演进和机会
Jmeter性能测试
StratoVirt 中的虚拟网卡是如何实现的?
【学习笔记】尚未用过的图论知识
黑马瑞吉外卖之分类信息的分页查询
好的架构是进化来的,不是设计来的
a-upload上传图片