c – 如何在boost :: program_options中指定vector的默认值
发布时间:2020-12-16 06:04:17 所属栏目:百科 来源:网络整理
导读:我想为代码中的注释中给出位置参数的默认值,但编译器抱怨.代码正在编译好.我用boost 1.46.1和g int main(int argc,char *argv[]) { namespace po = boost::program_options; po::positional_options_description p; p.add("path",-1); po::options_descripti
我想为代码中的注释中给出位置参数的默认值,但编译器抱怨.代码正在编译好.我用boost 1.46.1和g
int main(int argc,char *argv[]) { namespace po = boost::program_options; po::positional_options_description p; p.add("path",-1); po::options_description desc("Options"); std::vector<std::string> vec_str; std::string str; desc.add_options() ("foo,f",po::value< std::string >()->default_value(str),"bar") //("path,p",po::value< std::vector<std::string> >()->default_value(vec_str),"input files.") ("path,po::value< std::vector<std::string> >(),"input files.") ; po::variables_map vm; po::store(po::command_line_parser(argc,argv).options(desc).positional(p).run(),vm); po::notify(vm); } 解决方法
我需要给出默认值的文本表示,参见
http://lists.boost.org/boost-users/2010/01/55054.php.
即以下行工作: ("path,po::value< std::vector<std::string> > ()->default_value(std::vector<std::string>(),""),"input files.") 我想这是需要帮助输出,这可以在我的例子 std::cout << desc << std::endl; 由于编译器不知道如何重载矢量< string>的运算符<()(),所以它抱怨. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |