d禁止新不应禁止域
@disablenew可禁止new符号,这样垃集就不会管理它,然后出现导致析构器/终结器混淆的麻烦.但它目前也禁止域.
class A {
@disable new();
}
void main() {
scope A a = new A();
}
禁止new的目的更多与管理生命期有关.与按特定方式调用的析构器有关.scope解决了该问题.
所以建议@disable new不检查scope x=new.
参考
浙公网安备 33010602011771号