[meta.help] (original) (raw)
21 Metaprogramming library [meta]
21.3 Metaprogramming and type traits [type.traits]
21.3.4 Helper classes [meta.help]
namespace std { template<class T, T v> struct integral_constant { static constexpr T value = v;using value_type = T;using type = integral_constant<T, v>;constexpr operator value_type() const noexcept { return value; } constexpr value_type operator()() const noexcept { return value; } };}
The class template integral_constant, alias template bool_constant, and its associated typedef-names true_type and false_typeare used as base classes to define the interface for various type traits.