
Good day, guys. I am new to boost and have some qestion concerns boost::program_options library. I've wrote a simple program (see code below), and when I trying to pass multiple '--help' option to the program, it throws exception with reason "multiple_occurrences". This exception reason may confuse the end-user, I wanna get some more pretty error description. So, I have only 2 solutions: 1) Prase exception reason and give a user more informative/pretty description. 2) Refactor boost::program_options to enable it to throw exceptions with informative reason. I need a hint from professional. BTW, how can I contribute to boost::program_options? Where can I read some docs? Thank you very much in advance and sorry for inconvenience. // Code: #include <string> #include <vector> #include <iostream> #include <exception> #include <boost/program_options.hpp> using namespace std; namespace po = boost::program_options; template<class T> ostream & operator << (ostream & os, const vector<T> & v) { copy(v.begin(), v.end(), ostream_iterator<T>(cout, " ")); return os; } int main(int argc, char *argv[]) { try { po::options_description desc("Options:"); desc.add_options() ("help", "produce help message") ("phone", po::value<vector<string> >()->multitoken(), "mobile phone number to send SMS to") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); if (vm.count("phone") > 0) { cout << "Phones: " << vm["phone"].as< vector<string> >() << endl; } } catch(exception & e) { cerr << "Unable to parse command line: " << e.what() << endl; return 1; } return 0; }