пропуск неизвестных опций без сброса с помощью опций программы boost

В эти дни я играю с опциями программы Boost для чтения файлов INI.

Код, который у меня есть, выдает исключение, когда в файле есть строка с неизвестной опцией. Знаете ли вы, возможно ли и как сделать так, чтобы приведенный ниже код прочитал весь файл? Я хочу пропустить неизвестные параметры, не бросая их, чтобы я мог прочитать все возможные значения. Большое спасибо АФГ

 namespace pod = boost::program_options;
 pod::options_description options("Options");
 std::string myArgValue;
 options.add_options()     

      ("SECT_A.Option_A", 
           pod::value<int>()->default_value(1), 
           "xxx")

      ("SECT_B.Option_B", 
           pod::value<std::string>(&myArgValue),
           "xxx")
 ;

 pod::variables_map vm;
 pod::store( pod::parse_config_file( s, options ) , vm);
 pod::notify( vm );

person Abruzzo Forte e Gentile    schedule 16.12.2010    source источник


Ответы (1)


Ага: allow_unregistered(), посмотри:

http://www.boost.org/doc/libs/1_45_0/doc/html/program_options/howto.html#id2075177

person Nim    schedule 16.12.2010
comment
Можешь мне помочь? Он не компилируется. Я обновляю свой код следующим образом: pod::store( pod::parse_config_file(s, options).allow_unregistered(), vm); но он не компилируется. - person Abruzzo Forte e Gentile; 16.12.2010
comment
Привет еще раз. Я нашел, как это сделать в моем конкретном случае. parse_config_file имеет третье опциональное значение, называемое allow_unregistered, для которого по умолчанию установлено значение false. Я установил «true», и у меня больше нет исключений. - person Abruzzo Forte e Gentile; 16.12.2010