
Hi, I am using boost.Program_options and it is quite useful. I miss two features, though. I could not find a way to specify that some option should be mandatory at the command line. Or that some option has to be present at least x times and at most y times at the command line. I mean I can check it myself if the Program_options parser is finished - but I like it better, if the library would do the work for me. In pseudocode I want to write something like this for example: opts.add_options()("file,f", value< vector<string> >() ->min_times(1)->max_times(2), "blah blah"); ./a.out -f foo -f bar # ok ./a.out -f foo -f bar -f bas # exception from the Program_options parser Is this feature missing, or have I overlooked it in the documentation? Another thing I couldn't find: a way to switch program options into a 'checking mode'; i.e. a mode, where the program options code throws an exception if the count of an non existing option is queried (in case of an programming error). For example desc.add_options() ("help,h", "produce help message"); ... vm.set_pedantic(); // <- pseudo code vm.count("foobar"); // <- would throw exception Or even better, if it is possible do register some enum value, which can be used to index into the variables_map - I mean, to get a compile error the option identifier is misspelled (instead of an runtime error ...): enum my_opts { HELP }; desc.addoptions()("help,h", HELP, "produce help message"); vm.count(EHLP); // <- compile error ... Best regards Georg