第二个 结构体 is__same 是 第一个 的 特化 版本,即当<> 中 两个 类型 一致 的 情况,会 根据 类型 推导 原则 ,推导 为 使用 第二个 特化 版本。
代码 比较 简单,应该 很容易 看明白。
template<typename T1,typename T2>
struct is__same
{
operator bool()
{
return false;
}
};
template<typename T1>
struct is__same<T1,T1>
{
operator bool()
{
return true;
}
};
void main()
{
cout<<is__same<int,char>()<<endl;
cout<<is__same<int,int>()<<endl;
system("pause");
}