タイトルがややこしいので、解いていただけると幸いです。
テンプレートを使用する単純なクラスがあります。
template <class T>
class Value
{
};
unordered_set を拡張する別のクラス:
template<class T>
class Collection : public std::unordered_set<T>
{
};
これらのクラスには両方とも他のコードがありますが、私の質問には関係ないと思います。
Collection クラスの特定の実装では、作成時に使用されたテンプレート パラメーターに関係なく、任意の Value へのポインターを取得できるようにしたいと考えています。言い換えれば、次のように意味的に似たものを持てるようにしたいのです。
class ValueCollection : public Collection<Value*>
{
};
ValueCollection *vc = new ValueCollection();
vc.insert(new Value<std::string>("hello"));
vc.insert(new Value<int>(5));
もちろん、それはうまくいきません。どうすれば同様の機能を取得できますか?