Time to kill T() as (sometimes) working T.init alias ?
Mehrdad
wfunction at hotmail.com
Thu Nov 29 20:31:52 PST 2012
On Friday, 30 November 2012 at 03:27:57 UTC, Walter Bright wrote:
> Frankly, non-trivial default construction has always smelled
> like a bad practice to me, though it's not always obvious why.
If that's the case, then we need to get rid of postblits entirely.
They don't make sense if default-valued structs are meant to be
bit-copyable.
Consider:
size_t n;
struct S { this(this) { n++; } }
void main()
{
auto s1 = S();
auto s2 = S.init;
const s3 = const(S)();
immutable s4 = immutable(S)();
enum s5 = S();
auto t1 = s1;
auto t2 = s2;
auto t3 = s3;
auto t4 = s4;
auto t5 = s5;
// What's 'n' supposed to be now, and why?
}
More information about the Digitalmars-d
mailing list