copy-ctor's

Manu turkeyman at gmail.com
Sat May 25 23:15:05 UTC 2019


So, it seems that if an object has a postblit and a copy constructor,
the postblit is preferred.

It also seems that if an object has a copy constructor and a MEMBER
with a postblit, then object has a postblit generated which calls
through to the member, and that is preferred.

I have also noticed that if you have a union containing an item with a
postblit, the postblit is always called, even if the item in the union
is not valid:

struct S(T)
{
  union {
    int x = 0;
    T y = void;
  }
  bool isT = false;
}

S a;
S b = a; // calls `y's postblit, even though it's `isT` is false and
the object is `void` initialised...

So, it's very hard to craft a tool like 'S', when the supplied T might
have a postblit and ruin everything. What are my options here?

Also, `hasElaborateCopyConstructor` is broken now. It should know
about copy ctor's.


More information about the Digitalmars-d mailing list