Requires a type to have a user defined or compiler generated default constructor or be of a basic type.