Unary Type Traits

Unary Type Traits describe a property of a single type. Every Unary Type Trait possesses a static data member named value. For most traits, this member has type bool, and indicates the presence or absence of a specific property or trait of the argument type. For example, the value of the following expression will be true if the type argument Ty is a union type, and false otherwise:

std::tr1::is_union<Ty>::value
A few of the Unary Type Traits possess a static data member named value whose type is not bool. An example is the type trait extent, which gives the number of elements in an array type:
typedef char arr[42];
size_t sz = std::tr1::extent<arr>::value; //sz == 42;

Every instance of a Unary Type Trait is derived from an instance of integral_constant. All Unary Type Traits are default-constructible.