boost program_options不区分大小写的解析

时间:2013-03-14 20:36:48

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

有没有人研究过如何获取boost程序选项来解析不区分大小写的参数列表

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

即,设置style_t枚举标志,例如long_case_insensitive。但是,我不知道该怎么做。例如,如何获得以下代码片段来接受--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;
    }

1 个答案:

答案 0 :(得分:7)

您可以在调用商店时修改样式。我相信这对你有用:

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);