#include <type_traits> template<typename T> using is_numeric = std::integral_contstant<bool, std::is_integral<T>::value || std::is_floating_point<T>::value>; template<typename T> using is_numeric_t = typename is_numeric<T>::type;