【问题标题】:boost program_option case insensitive parsingboost program_option 不区分大小写的解析
【发布时间】:2013-03-14 20:36:47
【问题描述】:

有没有人想出如何获得提升程序选项来解析不区分大小写的参数列表

在 boost 文档中,它似乎是受支持的。见http://www.boost.org/doc/libs/1_53_0/boost/program_options/cmdline.hpp

即设置 style_t 枚举标志,例如 long_case_insensitive。但是,我不知道该怎么做。例如,您如何让以下代码 sn-p 接受 --Help 或 --help 或 --HELP

    po::options_description desc("Allowed options");
    desc.add_options()
        ("help", "produce help message")
        ("compression", po::value<double>(), "set compression level")
    ;

    po::variables_map vm;        
    po::store(po::parse_command_line(ac, av, desc), vm);
    po::notify(vm);    

    if (vm.count("help")) {
        cout << desc << "\n";
        return 0;
    }

【问题讨论】:

    标签: c++ boost boost-program-options


    【解决方案1】:

    您可以在调用 store 时修改样式。我相信这应该适合你:

    namespace po_style = boost::program_options::command_line_style;
    
    po::variables_map vm;        
    po::store(po::command_line_parser(argc, argv).options(desc)
              .style(po_style::unix_style|po_style::case_insensitive).run(), vm);
    po::notify(vm);    
    

    【讨论】:

      猜你喜欢
      • 2018-11-28
      • 2018-03-11
      • 1970-01-01
      • 2012-03-09
      • 2011-08-30
      • 2013-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多