我試圖創建通用的變量,像這樣:C++一般變量
Class Foo {
template<typename T>
boost::unordered_map<int, T> items;
template<typename T>
boost::unordered_map<int, T>& get() {
return items<T>;
}
}
// ....
void main() {
Foo foo;
SomeClass d();
foo.get<SomeClass>().insert(std::make_pair(1, d));
}
有沒有辦法做到這一點?
爲什麼你需要做一個類是什麼?地圖可以很容易地返回你的值,所以爲什麼要創建一個包含地圖的類?如果你想實際修改類,你需要返回一個引用,或者你只需要更改副本 – meneldal
@meneldal因爲對於每個富實例應該是它自己的unordered_maps –
我想有可能使用類型擦除(和地圖的地圖) - 如果你真的需要一組任意的類型。 – dyp