2

大文字と小文字を区別しない引数リストを解析するためのブーストプログラムオプションを取得する方法を誰かが考え出したことがありますか

Boostのドキュメントでは、サポートされているようです。http://www.boost.org/doc/libs/1_53_0/boost/program_options/cmdline.hppを参照してください

つまり、long_case_insensitiveなどのstyle_tenumフラグを設定します。しかし、どうすればいいのかわかりません。たとえば、次のコードスニペットを取得して--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;
    }
4

1 に答える 1

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);    
于 2013-03-14T20:48:33.137 に答える