1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
#include <string>
#include <iostream>
#include <boost/program_options.hpp>
int main(int argc, char* argv[])
{
// Déclaration des options 'Génériques' :
namespace po = boost::program_options ;
po::options_description generic("Generic options") ;
generic.add_options()
("help,h" , "produce a help message" )
("version,v" , "output the version number" )
;
// Déclaration d'autres options :
std::string thePath;
unsigned short theNumber;
po::options_description other("Other options");
other.add_options()
("path,p" , po::value<std::string>(&thePath)
, "set path" )
("number,n" , po::value<unsigned short>(&theNumber)
, "set number" )
;
// Déclaration d'une instance de options_description qui regroupe l'ensemble des options :
po::options_description cmdLineOpt("Allowed options") ;
cmdLineOpt.add(generic).add(other);
// Parsing :
po::variables_map vm ;
po::store(po::parse_command_line(argc, argv, cmdLineOpt), vm) ;
po::notify(vm) ;
std::string appVersionId = "v0.1";
if( vm.count("version") ) {
std::cout << "App Version " << appVersionId << std::endl ;
return 0 ;
}
if( vm.count("help") ) {
std::cout << cmdLineOpt << std::endl ;
return 0 ;
}
if( vm.count("path") ) {
std::cout << "path = " << thePath << std::endl ;
}
if( vm.count("number") ) {
std::cout << "number = " << theNumber << std::endl ;
}
} |
Partager