On Wednesday, 23 January 2013 at 08:00:05 UTC, Simen Kjaeraas
wrote:
On 2013-45-23 04:01, deadalnix <deadal...@gmail.com> wrote:
On Tuesday, 22 January 2013 at 19:07:56 UTC, Simen Kjaeraas
wrote:
One could argue that the compiler should choose the other
constructor, and
even that having default constructors is reasonable. However,
D has gone
the route of not having default constructors for structs.
Instead,
structs are defined to be trivially constructible from T.init.
Which incompatible with the desire of a NonNull construct.
Really? It's not like you cannot @disable T.init. Please show
how this is
a problem for NonNull!T.
Easy :
NonNull!T bar; // bar is null
NonNull!T[] barArray;
barArray.length = 5; // barArray contains null elements.
NonNull!T bar = something;
foo(move(bar));
bar; // bar is null \o/
In fact they is so much way to create null stuff here that it
isn't even remotely difficult to create a NonNull that is null;