#include <iostream> #include <type_traits> int main(){ int a =10; int* p =&a; std::cout<<"int* is a pointer: "<< std::is_pointer<int*>::value<< std::endl; std::cout<<"int is a pointer: "<< std::is_pointer<int>::value<< std::endl; return0; }
输出结果:
int*is a pointer:1intis a pointer:0
检查是否是引用类型
#include <iostream> #include <type_traits> int main(){ int a =10; int& ref = a; std::cout<<"int& is a reference: "<< std::is_reference<int&>::value<< std::endl; std::cout<<"int is a reference: "<< std::is_reference<int>::value<< std::endl; return0; }
输出结果:
int&is a reference:1intis a reference:0
检查是否是可调用的
#include <iostream> #include <type_traits> #include <functional> void func(){} int main(){ std::cout<<"int is callable: "<< std::is_callable<int>::value<< std::endl; std::cout<<"void() is callable: "<< std::is_callable<void()>::value<< std::endl; std::cout<<"func is callable: "<< std::is_callable<decltype(func)>::value<< std::endl; return0; }
输出结果:
intis callable:0void()is callable:1
func is callable:1
<type_traits> 是 C++ 中一个非常有用的工具,它允许开发者在编译时检查和操作类型属性。这不仅可以提高代码的安全性,还可以使代码更加灵活和可重用。