#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;