Экземпляр эквивалента в шаблонном классе в переполнении стека

У меня есть шаблон класса

template <typename T>
class BST {
public:
Node<T>* root;
...

и я хотел бы изменить поведение функции вставки в зависимости от типа T.

Я ищу что-то вроде

if(T instanceof Pair){

}

1

Решение

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

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

Другие решения

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

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

Вы можете использовать функцию «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
}
}
0
По вопросам рекламы [email protected]