我想有一個std::hash_map
映射(例如)常規std:string
s到多個不同的專業化另一個模板類。C++ hash_map與非專門模板作爲值
這個例子是我想要實現(這是錯誤的,並不能編譯,雖然):
template<typename T>
class Foo {
public:
Foo(T _value)
{
this-> value = _value;
}
private:
T value;
};
int main()
{
hash_map<string, Foo> various_foos;
various_foos["foo"] = Foo<int>(17);
various_foos["bar"] = Foo<double>(17.4);
}
你必須讓他們從某種FooBase'基類,然後存儲(可能智能)指針或引用'繼承。然後有一些可用來確定它真正包含的id。 – BoBTFish 2013-02-28 17:02:20
除非你有s.th,否則這將不起作用。就像['boost :: any'](http://www.boost.org/doc/libs/1_53_0/doc/html/any.html)你可以存儲在'std :: map'中一樣。 – 2013-02-28 17:02:44