#include #include class A {}; enum E : int {}; template T f(T i) { static_assert(std::is_integral::value, "Integral required."); return i; } int main() { std::cout << std::boolalpha; std::cout << std::is_integral::value << '\n'; std::cout << std::is_integral::value << '\n'; std::cout << std::is_integral::value << '\n'; std::cout << std::is_integral::value << '\n'; std::cout << std::is_integral::value << '\n'; std::cout << f(123) << '\n'; }