2013-03-14 2 views
2

Кто-нибудь работало, как получить варианты подталкивания программы для анализа нечувствительны к регистру списков аргументовповышения program_option регистронезависим разбор

В документации буста, оказывается, что он поддерживается. См. 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; 
    } 

ответ

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