テンプレートクラスがあります
template <typename T>
class BST {
public:
Node<T>* root;
...
また、T 型に応じて挿入関数の動作を変更したいと考えています。
私は次のようなものを探します
if(T instanceof Pair){
}
テンプレートクラスがあります
template <typename T>
class BST {
public:
Node<T>* root;
...
また、T 型に応じて挿入関数の動作を変更したいと考えています。
私は次のようなものを探します
if(T instanceof Pair){
}
BST
型を取る特殊化を追加し、それに応じて関数Pair
を作成できます。insert
template <>
class BST<Pair>
{
public:
insert() { ... }
};
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
}
}
使用できますstd::is_same
:
if (std::is_same<T, Pair>::value)