У меня есть шаблон класса
template <typename T>
class BST {
public:
Node<T>* root;
...
и я хотел бы изменить поведение функции вставки в зависимости от типа T.
Я ищу что-то вроде
if(T instanceof Pair){
}
Ты можешь использовать std::is_same
:
if (std::is_same<T, Pair>::value)
Вы можете добавить специализацию BST
это занимает Pair
введите и создайте insert
функционировать соответственно:
template <>
class BST<Pair>
{
public:
insert() { ... }
};
Вы можете использовать функцию «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
}
}