struct with @disable(d) default constructor doesn't work with arrays?

Minas Mina minas_mina1990 at hotmail.co.uk
Wed Aug 22 03:46:31 PDT 2012


I have this struct:

struct S
{
	int[] t;
	
	@disable this();
	
	this(int sz)
	{
		t = new int[sz];
		t[] = 1;
	}
	
	S opCall(int sz)
	{
		S s = S(sz);
		return s;
	}
	
	this(this)
	{
		t = t.dup;
	}
}


Naturally, this doesn't work:
S s; // compiler error

However this does compile.
S[100] s;


S[100] s;	
writeln(s[0].t[0]); // range violation error!

I think it's a bug, what do you think?


More information about the Digitalmars-d-learn mailing list