Sergey Gromov wrote:
Fri, 24 Jul 2009 16:58:50 -0500, Andrei Alexandrescu wrote:

deterministic destructors,  arbitrary copy constructors, and optional
lack of default constructor.
Struct have that except for default constructor. In D, currently default
constructors cannot execute code. This is a limitation that we might
need to address, although it has some advantages.
There are things that copy constructors can do that the post-blit
operator can't do.
Yes, mostly wrong things. I think it would be a huge loss if D copied C++'s model.

This means that structs cannot hold on external resources, ever:

    struct RAII {...}
    var a = RAII("foo");
    var b = RAII("bar");
    a = b; // you just leaked a and corrupted b

You may be making a confusion between assignment and copy construction.

Andrei

Reply via email to