1

テンプレートクラスがあります

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

また、T 型に応じて挿入関数の動作を変更したいと考えています。

私は次のようなものを探します

if(T instanceof Pair){

}
4

3 に答える 3

2

BST型を取る特殊化を追加し、それに応じて関数Pairを作成できます。insert

template <>
class BST<Pair>
{
   public:
       insert() { ... }
};
于 2013-04-29T23:55:05.113 に答える
1

C++ でこれを実現するには、typeinfo ヘッダーで「typeid」関数を使用できます。

template<class T>
T fun(T a)
{
  if(typeid(T) == typeid(int))
  {
    //Do something
  }
  else if(typeid(T) == typeid(float))
  {
    //Do Something else
  }
}
于 2013-04-30T00:05:35.263 に答える
1

使用できますstd::is_same

if (std::is_same<T, Pair>::value)
于 2013-04-29T23:53:55.593 に答える