Ticket #11891: boost_program_options.cpp

File boost_program_options.cpp, 1.3 KB (added by ce.andrade@…, 7 years ago)
Line 
1#include <iostream>
2#include <stdexcept>
3#include <boost/program_options.hpp>
4
5using namespace std;
6namespace po = boost::program_options;
7
8int main()
9{
10
11 try {
12 // Works OK!
13 //throw po::validation_error(po::validation_error::invalid_option_value);
14
15 // Doesn't work and throw std::out_of_range exception
16 //throw po::validation_error(po::validation_error::invalid_option_value,
17 //"--test");
18
19 // Doesn't work as above: std::out_of_range exception
20 //throw po::validation_error(po::validation_error::invalid_option_value,
21 //"--test", "");
22
23 // Doesn't work properly. Although it doesn't throw out_of_range
24 // exception, the value "abc" is no shown. The output is:
25 // "Error: the argument for option 'test' is invalid"
26 throw po::validation_error(po::validation_error::invalid_option_value,
27 "--test", "abc");
28 }
29 catch(std::exception& e) {
30 cerr << "Error: " << e.what() << "\n";
31 return -1;
32 }
33 catch(...) {
34 cerr << "Unknown error!" << "\n";
35 return -1;
36 }
37
38 return 0;
39}
40
41// Compiled with g++ -std=c++11 -ggdb boost_program_options.cpp -o test -L/opt/local/lib -lboost_program_options-mt
42