d类析构器问题
admin
2024-01-28 12:09:16
0

Socket.close现在是'this'上的'域'.
这不一定是坏事,就像close也是一样,但是值得破坏用户代码吗?好处不大.

是为了内存安全,类析构器不应构造器中逃逸本(this),因此隐式使类析构器.
问题
提交
因为标准套接字(std.socket)在析构器中调用了close,因此必须标记它为.

析构器的当前实现已破坏;甚至没有正确实现D规范!(规范说它们"总是虚的",但它们从来都不是虚的,但实现模拟它),“析构器结束时,自动调用父类的析构器”,也只对了一半,调用rtFinalize时,确实是,但用其他方式调用析构器时,不会这样.

这对'@safe'和其他静态属性影响很大,它们根本不管用!你不能在@safe(或nogc等)环境中调用'.destroy()',因为destroy无法证明析构器完全遵循这些规则.
如果遵循规范,就可像其他虚方法一样证明它,因为子类也必须遵循规则.但它将相当严格:

class A {void dispose() @safe {}
}class B : A {override void dispose() @system //编译错误,不能用`system`覆盖`safe`//由于覆盖时,属性是继承的,因此不必写`'@safe'`override void dispose() @safe {super.dispose(); // 很好.}// 但能收紧吗?override void dispose() @safe @nogc {//签名`好`,可收紧限制,但是,规范说它必须调用父super.dispose();//@nogc不能调用非@nogc的父}
}void destroy(T)(T t) {t.dispose();
}A a;
destroy(a);//`因为`A.dispose`,推导为`@safe
B b;
destroy(b); // //它最多也能做到`@safe`,因为`B.dispose`必须可调用`A.dispose`//就像`rt_finalize`现在那样,即使在循环中让`destroy`调用`this.dtor();`,然后`this.dtor();`,它也最多只能推导出定义`析构器`的最顶层类,所实际指定的

强制调用'super.x()'的"问题",是禁止析构器收紧条件.它必须与父类的接口,属性等完全匹配.

"问题"上加引号是因为这不一定是问题!它工作得很好,只是你不能像在子类中那样收紧,因为也要调用父链.
目前实现没有按处理析构器,只是在调用析构器时,假装是.需要修复它,强制子类继承父类属性.
这样,可创建'@safe'析构器.但是在此之前,必须从'@system'环境中调用析构器.即使在'@safe'域中显式.destroy(),析构器也并不是@安全的,因为静态类型系统不能证明在子类型中有析构器,只能动态知道,不要标记为'@system'等.

那么,既然当前析构器已破坏'@safe',希望批量修改问题.
终结器在实际执行时非常麻烦,显然,没有GC操作,因为它会死锁,众所周知,不能访问GC成员,因为可能已收集它们,但即使手动管理成员也可能有问题.由于是从任意线程调用终结器,手动管理成员引用了线本数据,那么又惨了.注意,许多Win32GUI句柄都是线本的,所以也不要在终结器中清理它们.没有属性可帮助清理.除了pure,这有点过头了,哈哈.

由于在套接字的析构器中,标准套接字(std.socket)调用了'close',所以也必须标记'close''scope'.

顺便,这也是不确定的;我希望Socket有个释放它的文件描述符的方法,这样它就不再试图关闭它了.这应该很简单.

相关内容

热门资讯

关于万历年间的一些民间故事? 关于万历年间的一些民间故事?万历年间的一天,广宁一个叫孙林的药材商在大街上闲逛,一个看相的一看到他,...
随身翻译机选择什么品牌好? 随身翻译机选择什么品牌好?1、随身翻译机怎么选购?2、随身翻译机随身翻译机到哪里买?3、随身翻译机里...
求“困知勉行”的解释 求“困知勉行”的解释kùn zhī miǎn xíng困知:遇困而求知;勉行:尽力实行。在不断克服困...
我该怎么整容了? 我该怎么整容了?我觉得你不用整容,你长得挺好的,男人结结实实就行,皮肤不太好,有豆豆,不要吃辛辣食物...
为什么叫云时代 为什么叫云时代就是一切资源都在云上,云指终端
综合来说,空客和波音哪家公司的... 综合来说,空客和波音哪家公司的飞机更好?波音比空客更好些。根据规模比较波音排名64,空客排名105。...
哪个季节适合出去旅游? 哪个季节适合出去旅游?在各种季节游玩中,人们讲的最多的是春游。因为人最喜欢的是新生的物品,而春天是万...
股市,情绪指标什么意思 股市,情绪指标什么意思市场情绪指标,是反应市场情绪的一种技术指标,可以反应出市场的情绪是否过热,还是...
双重身份用什么数字表示? 双重身份用什么数字表示?有一种说法叫斜杠青年。俺都是用负数表示负数表示多数是用X表示吗,我猜的2吧,...
谁能介绍一些关于爱情的书籍? 谁能介绍一些关于爱情的书籍?外国的有文学价值的书有些难啃,亚洲岩井俊二的情书,一定要看书,不是电影,...
六岁的小女孩上幸福来敲门 六岁的小女孩上幸福来敲门六岁的小女孩上幸福来敲门节目的需要吧挺有意思的看到还是有小孩子上的
马和鹿是什么成语 马和鹿是什么成语指鹿为马zhǐ lù wéi mǎ[释义] 把鹿说成马。比喻故意颠倒黑白。[语出]...
有没有主角穿越成狐仙,玉藻前,... 有没有主角穿越成狐仙,玉藻前,金毛白面九尾狐的综漫小说,同人小说?小鸡漫画上有一个,名字应该是《狐妖...
2-8人去张家界五日四晚跟团游... 最近我带着几位朋友计划了一次张家界五日四晚的旅行,人数在2到8人之间。说实话,一开始还担心价格太高或...
螳螂电视剧剧情介绍 螳螂电视剧剧情介绍 1948年冬,我军准备渡江作战,解放南京。国民党政府准备将一批珍贵国宝转运到台湾...
重庆旅游五日游多少钱,重庆旅游... 在繁忙的都市生活中,我总是渴望能带着孩子逃离喧嚣,去一个充满新奇与乐趣的地方,享受一段难忘的亲子时光...
鎏金观景台倒映江心·长桥衔日绘... 南京鱼嘴湿地公园以其独特的地理位置和丰富的湿地生态,融合了自然观赏、生态保护教育、休闲娱乐与亲子活动...
平时出行意外险该选哪个?综合意... 平时出行意外险该选哪个?综合意外险有什么好处?平时出行一定要注意安全,保险的配备也是十分必要。一般来...
丽江文旅推介走进成都,邀您体验... 当苏超球迷嗨到冒烟,兵马俑人潮涌动,重庆火锅沸腾至凌晨3点,成都世运会即将燃爆全城之际,云南丽江市却...
直男眼里的《山河令》逗乐网友,... 直男眼里的《山河令》逗乐网友,直男眼里的这部剧是怎样的?在直男的眼中,这就是知己的感觉,这就是真的兄...