C ++中模板类中的等价实例

时间:2013-04-29 23:50:25

标签: c++ templates instanceof

我有模板类

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

我想根据T类型修改插入函数的行为。

我找的是像

这样的东西
if(T instanceof Pair){

}

3 个答案:

答案 0 :(得分:2)

您可以添加BST的{​​{1}}专精,并相应地创建Pair函数:

insert

答案 1 :(得分:1)

您可以使用std::is_same

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

答案 2 :(得分:0)

您可以在typeinfo标头中使用“typeid”函数在C ++中实现此功能。

template<class T>
T fun(T a)
{
  if(typeid(T) == typeid(int))
  {
    //Do something
  }
  else if(typeid(T) == typeid(float))
  {
    //Do Something else
  }
}