2013-04-29 3 views

ответ

1

Вы можете использовать std::is_same:

if (std::is_same<T, Pair>::value) 
+0

Помните, что is_same также проверит также константу параметра. – Joel

+0

@Joel Итак, как это проверить? – 2013-04-30 00:21:09

+1

@ user1825608: В зависимости от того, что означает «право» для вас. Является ли 'const int' тем же типом, что и' int'? В противном случае 'is_same :: type, Pair> :: value' – MSalters

2

Вы можете добавить специализацию BST, которая принимает Pair тип и создать функцию insert соответственно:

template <> 
class BST<Pair> 
{ 
    public: 
     insert() { ... } 
}; 
0

Вы можете использовать функцию typeid в заголовке typeinfo для достижения этой цели на C++.

template<class T> 
T fun(T a) 
{ 
    if(typeid(T) == typeid(int)) 
    { 
    //Do something 
    } 
    else if(typeid(T) == typeid(float)) 
    { 
    //Do Something else 
    } 
} 
Смежные вопросы