template struct integral_constant { static constexpr T value = Value; }; template using bool_constant = integral_constant; template struct is_integral : integral_constant {}; template struct is_arithmetic : bool_constant::value> {};