Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards



template <class T, T val>
struct integral_constant
   typedef integral_constant<T, val>  type;
   typedef T                          value_type;
   static const T value = val;

typedef integral_constant<bool, true>  true_type;
typedef integral_constant<bool, false> false_type;

Class template integral_constant is the common base class for all the value-based type traits. The two typedef's true_type and false_type are provided for convenience: most of the value traits are Boolean properties and so will inherit from one of these.