1. 判斷兩個類型是否相同
template<class T1, class T2>
class my_is_same {
public:
operator bool() {
return false;
}
};
template<class T1>
class my_is_same<T1, T1> {
public:
operator bool() {
return true;
}
};
2. 判斷某個類型是否爲指定類型
// 就以int爲例吧
template<class T>
class my_is_int {
public:
operator bool() {
return false;
}
};
template<>
class my_is_int<int> {
public:
operator bool() {
return true;
}
};
其實還可以寫出其他版本,原理都是類似的。