2010-12-16 3 views
3

In diesen Tagen spiele ich mit Boost Programmoptionen zum Lesen von INI-Dateien.Überspringe unbekannte Optionen ohne zu werfen mit Boost Programmoptionen

Der Code Ich habe eine Ausnahme einmal in der Datei gibt es eine Zeile mit einer unbekannten Option. Wissen Sie, ob es möglich ist und wie der folgende Code die ganze Datei lesen lässt? Ich möchte die unbekannten Optionen überspringen, ohne zu werfen, damit ich alle möglichen Werte lesen kann. Vielen Dank AFG

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

Antwort

6
+0

Können Sie mir helfen? Es kompiliert nicht. Ich aktualisiere meinen Code wie folgt: pod :: store (pod :: parse_config_file (s, optionen) .allow_unregistered(), vm); aber es kompiliert nicht. –

+4

Hallo nochmal. Ich habe in meinem speziellen Fall herausgefunden, wie das geht. parse_config_file hat einen dritten optioanl-Wert namens "allow_unregistered", der standardmäßig auf "false" gesetzt ist. Ich setze auf 'wahr' und ich habe keine Ausnahmen mehr. –

+0

Sorry, ich war zum Mittagessen weg! :) Wenn du es sortiert hast dann cool .. – Nim

Verwandte Themen