版权声明:本文为博主原创文章,未经博主允许不得转载。
识别变量的type id,返回true或false,举一个简单使用的例子
template <typename T>
void type_traits_output(const T& x)
{
cout << "
type traits for type : " << typeid(T).name() << endl;
cout << "is_void " << is_void<T>::value << endl;
cout << "is_integral " << is_integral<T>::value << endl;
cout << "is_floating_point " << is_floating_point<T>::value << endl;
cout << "is_arithmetic " << is_arithmetic<T>::value << endl;
cout << "is_signed " << is_signed<T>::value << endl;
cout << "is_unsigned " << is_unsigned<T>::value << endl;
cout << "is_const " << is_const<T>::value << endl;
cout << "is_volatile " << is_volatile<T>::value << endl;
cout << "is_class " << is_class<T>::value << endl;
cout << "is_function " << is_function<T>::value << endl;
cout << "is_reference " << is_reference<T>::value << endl;
}
int main(int argc, const char * argv[]) {
int a = 5;
type_traits_output<int>(a);
return 0;
}
输出结果

具体操作也不做太多解释了,很好理解.更多的Type Traits见
http://www.cplusplus.com/reference/type_traits/
以下是Type Traits的截图




希望会对大家有所帮助
如有不正确的地方请指正
参照<<侯捷 C++新标准 C++11>>