我想創建一個類,它將有一個get模板方法,它將接收std :: string以在std :: map中查找正確的變量並將其返回。返回不同類型變量的單個get方法
性病::地圖應存儲任何類型的變量,所以我用的boost ::任何,迄今爲止的std ::地圖看起來像這樣:
std::map<std::string, boost::any> variables_;
爲get函數,我試過的東西像這樣:
template <typename T>
T get(std::string& parameter)
{
return variables_[parameter];
}
但是沒有幸運,我的問題是,甚至有可能這樣做?如果是這樣,怎麼樣?
其基本思想是我不想爲我的類中的每個特定變量制定特定的方法,所以其他類不需要知道它的每個獲取方法。
謝謝!
ps:對於有人問我爲什麼要這樣做,這裏是一個簡歷,我有很多算法,它們將按照一定的順序運行,並且它將使用最後一個已運行的算法。所以,我想要的是製作一個xml文件,它將告訴哪些算法將運行,以何種順序以及將從另一個算法中使用哪些數據。因此,例如,算法A具有名爲「閾值」的變量,算法B需要該信息,因此,通常它將不得不使用類似於A.getThreshold的方式從A中請求它,但據我所知,我不能用一個字符串中的名稱(來自xml文件)調用一個對象函數,所以我的解決方案將只有一個get函數,我傳遞了我想要的變量名稱,該函數將它返回給我。