disable kelime anlamı olarak devre dışı anlamına geliyor. '@disable' ile imlenen bildirimlere başvurarak derleme zamanı hataya neden olur. disallow niteliği işlemlerde ve yüklemelerde çalışma zamanı üretilen hataya değil derleme zamanında üretilen hataya güvenildiğinde kullanılmalı.
Yani '@disable' ile işaretlenenler kullanılamıyor. Kullanılırsa derleme zamanı hata veriyor. Ancak yinede @disable ile kullanılan her şey söz dizimine uygun olmalı.
Yani daha tamamlamadığımız işlevlerde filan kullanmak için sanırım. Benim anladığım bu :-)
Örn:
struct T {
@disable this(this) {} // devre dışı bırakılarak T'yı kopyalanamaz yaptı
}
struct S {
T t; // Kopyalanamaz üyesi S'yi ayrıca kopyalanamaz yapar.
}
@disable int a;
@disable void foo() { }
void main() {
S s;
if(a==a) // hata, a devredışı
S t = s; // hata, S kopyalanamaz
foo(); // hata, foo devredışı
}
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]