C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 如何在boost :: program_options中指定vector的默认值大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想为代码中的注释中给出位置参数的认值,但编译器抱怨.代码正在编译好.我用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>的运算符<()(),所以它抱怨.

大佬总结

以上是大佬教程为你收集整理的c – 如何在boost :: program_options中指定vector的默认值全部内容,希望文章能够帮你解决c – 如何在boost :: program_options中指定vector的默认值所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。