我有一张代表配置的地图.这是地图std::string和boost::any.
此映射在开始时初始化,我希望用户能够在命令行上覆盖这些选项.
我喜欢做的是使用该options_description::add_option()方法从此地图构建程序选项.但是,它需要一个模板参数,po::value<>而我只有boost::any.
到目前为止,我只是拥有代码的shell. m_Config代表我的配置类,并getTuples()返回一个std::map<std::string, Tuple>. TuplePair是一个typedef std::pair<std::string, Tuple>和Tuple包含boost::any我感兴趣的.
po::options_description desc;
std::for_each(m_Config.getTuples().begin(),
m_Config.getTuples().end(),
[&desc](const TuplePair& _pair)
{
// what goes here? :)
// desc.add_options() ( _pair.first, po::value<???>, "");
});
Run Code Online (Sandbox Code Playgroud)
有没有办法以这种方式构建它,还是我需要自己去做?
提前致谢!