在中文标准库中这一部分被叫作编译时类型信息
type_traits的一个简单应用:获取指针指向值的类型
#include <iostream>
template <typename T>
struct MyStruct
{
//typedef typename T::value_type VT; //如果T是指针类型,这句代码无法获取指针指向的数据类型,报错
typedef typename std::iterator_traits<T>::value_type VT; //使用iterator_traits可以获取指针指向的数据类型
};
template <typename T>
void fun(T p)
{
std::cout << *p;
}
int main()
{
std::true_type s;
int arr[] = { 1,2,3 };
fun<int*>(arr);
//MyStruct<int*>::VT s = 7;
//std::cout << s;
int test = 0;
}