• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright Vladimir Prus 2002-2004.
2 // Distributed under the Boost Software License, Version 1.0.
3 // (See accompanying file LICENSE_1_0.txt
4 // or copy at http://www.boost.org/LICENSE_1_0.txt)
5 
6 /* The simplest usage of the library.
7  */
8 
9 #include <boost/program_options.hpp>
10 namespace po = boost::program_options;
11 
12 #include <iostream>
13 #include <iterator>
14 using namespace std;
15 
main(int ac,char * av[])16 int main(int ac, char* av[])
17 {
18     try {
19 
20         po::options_description desc("Allowed options");
21         desc.add_options()
22             ("help", "produce help message")
23             ("compression", po::value<double>(), "set compression level")
24         ;
25 
26         po::variables_map vm;
27         po::store(po::parse_command_line(ac, av, desc), vm);
28         po::notify(vm);
29 
30         if (vm.count("help")) {
31             cout << desc << "\n";
32             return 0;
33         }
34 
35         if (vm.count("compression")) {
36             cout << "Compression level was set to "
37                  << vm["compression"].as<double>() << ".\n";
38         } else {
39             cout << "Compression level was not set.\n";
40         }
41     }
42     catch(exception& e) {
43         cerr << "error: " << e.what() << "\n";
44         return 1;
45     }
46     catch(...) {
47         cerr << "Exception of unknown type!\n";
48     }
49 
50     return 0;
51 }
52