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