テンプレートを介して C++ で HashTable を実装しようとしています。署名は次のとおりです。
template<class T1, class T2>
class HashTable {
public:
void add(T1 a, T2 b);
void hashFunction(T1 key, T2 value)
{
// how to implement this function using key as a generic
// we need to know the object type of key
}
};
そのため、汎用キーを含む実装を進めることができません。
Java では、キーを文字列に簡単にキャストできたので、キーのハッシュを文字列として実装することに満足していました。しかし、C++ で私が知っているのは、目的のオブジェクトにオブジェクトを動的にキャストできる RTTI の概念があるということです。
このメソッドがまったく正しい場合、その動的キャストを実装する方法は?
この場合、テンプレートを使用してジェネリックを実装するのが正しい方法ではない場合は、より良い方法を提案してください。