Disabling struct destructor illegal?
RazvanN
razvan.nitu1305 at gmail.com
Thu Jul 19 08:50:15 UTC 2018
struct A
{
int a;
@disable ~this() {}
}
void main()
{
A a = A(2);
}
Currently, this code yields:
Error: destructor `A.~this` cannot be used because it is
annotated with @disable
I was expecting that disabling the destructor would make it as if
the struct does not have a destructor, instead it makes the
program not compile. I find this behavior odd: why not make it
illegal to disable the destructor if disabling it will surely
result in errors wherever the struct is used. The only situation
where the code will compile is A is never used directly. To make
matters even more confusing, this code compiles:
class A
{
int a;
@disable ~this() {}
}
void main()
{
A a = new A();
}
So, is this a bug or am I missing something?
Yoroshiku onegaishimasu,
RazvanN
More information about the Digitalmars-d-learn
mailing list