...one 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; constexpr operator T()const; }; 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.