2010-12-16 1 views
3

Ces jours-ci je joue avec les options du programme Boost pour lire les fichiers INI.ignorer les options inconnues sans lancer les options du programme boost

Le code que j'ai jette une exception une fois dans le fichier il y a une ligne avec une option inconnue. Savez-vous si c'est possible et comment laisser le code ci-dessous lire tout le fichier? Je veux passer les options inconnues sans lancer pour pouvoir lire toutes les valeurs possibles. Merci beaucoup 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); 

Répondre

6
+0

vous me aider? Il ne compile pas. Je mets à jour mon code comme suit pod :: store (pod :: parse_config_file (s, options) .allow_unregistered(), vm); mais il ne compile pas. –

+4

Salut à nouveau. J'ai trouvé comment faire cela dans mon cas particulier. parse_config_file a une troisième valeur optioanl appelée "allow_unregistered" qui est définie sur "false" par défaut. Je définis sur 'vrai' et je n'ai plus d'exceptions. –

+0

Désolé, j'étais parti pour le déjeuner! :) Si vous l'avez trié puis cool .. – Nim

Questions connexes