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);