Enum member isTriviallyCopyConstructable

Checks if a type is trivially constructable, that is no user-defined copy constructor exists - postblit doesn't count.

enum isTriviallyCopyConstructable(T...) = isCopyConstructable!U && !hasMember!(U, "__ctor");

Example

mixin copyConstructableKinds;

static assert( isTriviallyCopyConstructable!KindPOD);
static assert(!isTriviallyCopyConstructable!KindHasCopyContrustor);
static assert(!isTriviallyCopyConstructable!KindHasPostBlit);
static assert( isTriviallyCopyConstructable!KindContainsPOD);
static assert(!isTriviallyCopyConstructable!KindContainsTypeWithNonTrivialCopyConstructor);
static assert(!isTriviallyCopyConstructable!KindContainsTypeWithPostBlit);