...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
The following templates describe the general properties of a type.
Synopsis:
template <class T> struct alignment_of; template <class T> struct has_new_operator; template <class T> struct has_nothrow_assign; template <class T> struct has_nothrow_constructor; template <class T> struct has_nothrow_default_constructor; template <class T> struct has_nothrow_copy; template <class T> struct has_nothrow_copy_constructor; template <class T> struct has_nothrow_destructor; template <class T> struct has_trivial_assign; template <class T> struct has_trivial_constructor; template <class T> struct has_trivial_default_constructor; template <class T> struct has_trivial_copy; template <class T> struct has_trivial_copy_constructor; template <class T> struct has_trivial_destructor; template <class T> struct has_virtual_destructor; template <class T> struct is_abstract; template <class T, class U> struct is_assignable; template <class T> struct is_copy_constructible; template <class T> struct is_copy_assignable; template <class T, class... Args> struct is_constructible; template <class T> struct is_default_constructible; template <class T> struct is_destructible; template <class T> struct is_const; template <class T> struct is_empty; template <class T> struct is_final; template <class T> struct is_stateless; template <class T> struct is_pod; template <class T> struct is_polymorphic; template <class T> struct is_signed; template <class T> struct is_unsigned; template <class T> struct is_volatile; template <class T, std::size_t N = 0> struct extent; template <class T> struct rank;