C++. 使用模板偏特化的技巧來判斷兩個類型之間的關係. 面試題

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;
    }
};

 其實還可以寫出其他版本,原理都是類似的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章