介绍一些判断类型的模板。
下列模板中包 含于头文件<type_traits>(C++11起引入)。
is_void
C++14起引入。
is_null_pointer
is_integral
is_floating_point
is_array
is_enum
is_union
is_class
is_function
is_pointer
is_lvalue_reference
is_rvalue_reference
is_member_object_pointer
is_member_function_pointer
#include <iostream>
#include <type_traits>
struct A {};
class B {};
enum class C {};
int main()
{
std::cout << std::boolalpha;
std::cout << std::is_class<A>::value << std::endl;
std::cout << std::is_class<B>::value << std::endl;
std::cout << std::is_class<C>::value << std::endl;
std::cout << std::is_class<int>::value << std::endl;
}
打印输出:
true
true
false
false
类型支持引用文档。
https://zh.cppreference.com/w/cpp/types