标签:
#include<iostream>#include<type_traits>//继承integral_constant可以方便写静态变量structGetSize: std::integral_constant<int,1>{};template<class T,T v>struct integral_my{staticconst T value = v;typedef T value_type;typedef integral_my<T, v>type;operator value_type(){return value;};//重载类型转换符};class A {};class B :A {};class C {};int main(){int a =GetSize::value;typedefint(*func)();//类型判断 std::cout << std::is_function<int>::value << std::endl; std::cout << std::is_function<func>::value << std::endl; std::cout << std::is_const<constint&>::value << std::endl; std::cout << std::is_const<constint>::value << std::endl; std::cout << std::endl;//类型是否相同 std::cout << std::is_same<int,float>::value << std::endl; std::cout << std::is_same<int,signedint>::value << std::endl; std::cout << std::endl;//判断是否未基类 std::cout << std::is_base_of<B, A>::value << std::endl; std::cout << std::is_base_of<A, B>::value << std::endl; std::cout << std::is_base_of<C, A>::value << std::endl; std::cout << std::endl;bool b = std::is_base_of<C, A>::value; std::cout << std::boolalpha; std::cout << b << std::endl;return0;}标签:
原文地址:http://www.cnblogs.com/dongdongweiwu/p/4743658.html