我想创建一个类,它将有一个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函数,我传递了我想要的变量名称,该函数将它返回给我。