Struct with default ctor (Was: [dmd-beta] dmd 2.064 beta take 2)
Maxim Fomin
maxim at maxim-fomin.ru
Sat May 18 13:05:51 PDT 2013
On Saturday, 18 May 2013 at 18:41:49 UTC, Walter Bright wrote:
> On 5/18/2013 12:30 AM, deadalnix wrote:
>> On Saturday, 18 May 2013 at 07:14:29 UTC, Walter Bright wrote:
>>> What default would you use for non-null pointers?
>>
>> Compile time error as a default sound like a nice option.
>> Probably too late now,
>> but that is where most language are going now, and having done
>> quite a lot of
>> java myself, I can guarantee you that it make sense.
>
> D has that:
>
> @disable this();
>
> which is not the same thing as allowing default constructors.
> See:
>
> http://d.puremagic.com/issues/show_bug.cgi?id=10102
struct S
{
int a;
@disable this();
this(int) { a = 1; }
~this() { assert(a !is 0); }
}
enum E : S { A = S.init }
union U
{
S s;
this(this) { assert (s.a !is 0); }
~this() { assert (s.a !is 0); }
}
void foo(out S s, out E e, out U u) { }
void main()
{
S[] arr;
arr.length = 5; // compiles
E[] e;
e.length = 5; // compiles
S[1] x = (S[1]).init; // compiles
U[] u;
u.length = 5; //compiles
foo(arr[0], e[0], u[0]); // compiles
}
@disable this(); commitments are cheap.
More information about the Digitalmars-d
mailing list