Enum member isNonTriviallyCopyConstructable
Checks to see if a type is non-trivially copy constructable
enum isNonTriviallyCopyConstructable(T...)
= isCopyConstructable!U && hasMember!(U, "__ctor");
This does not check for postblits
Example
mixin copyConstructableKinds;
static assert(!isNonTriviallyCopyConstructable!KindPOD);
static assert( isNonTriviallyCopyConstructable!KindHasCopyContrustor);
static assert(!isNonTriviallyCopyConstructable!KindHasPostBlit);
static assert(!isNonTriviallyCopyConstructable!KindContainsPOD);
static assert( isNonTriviallyCopyConstructable!KindContainsTypeWithNonTrivialCopyConstructor);
static assert(!isNonTriviallyCopyConstructable!KindContainsTypeWithPostBlit);