Easy-to-use command line argument parser. More...
#include <command_line_arg_parser.h>
Public Member Functions | |
CCommandLineArgParser () | |
Class constructor. More... | |
virtual | ~CCommandLineArgParser () |
Class destructor. More... | |
void | AddFlag (char ch_short_option, const std::string &str_long_option, const std::string &str_description, bool &b_flag) |
Adds a flag to the parser. More... | |
template<typename T > | |
void | AddArgument (char ch_short_option, const std::string &str_long_option, const std::string &str_description, T &t_buffer) |
Adds an argument to the parser. More... | |
virtual void | PrintUsage (CARGoSLog &c_log) |
Prints the arguments on the log. More... | |
virtual void | Parse (SInt32 n_argc, char **ppch_argv) |
Parses the arguments on the command line. More... | |
Easy-to-use command line argument parser.
Example: you want to parse
$ program --flag --arg1 intvalue --arg2 stringvalue # GNU-style $ program -f -1 intvalue -2 stringvalue # short style
The code to do it:
int main(int argc, char** argv) { bool bIsFlag; // will be true if the flag was specified, false otherwise UInt32 unIntValue; // stores th parsed intvalue std::string strValue; // stores the parsed stringvalue // Create the parser CCommandLineArgParser cCLAP; // Add the flag cCLAP.AddFlag( 'f', "--flag", "This is a flag", bIsFlag); // Add the int argument cCLAP.AddArgument<UInt32>( '1', "--arg1", "This is an int value", unIntValue); // Add the string argument cCLAP.AddArgument<std::string>( '2', "--arg2", "This is a string value", strValue); // Parse the command line! // In case of errors, a CARGoSException is thrown try { cCLAP.Parse(argc, argv); } catch(CARGoSException& ex) { LOGERR << "Error: " << ex.what() << std::endl; }
Definition at line 90 of file command_line_arg_parser.h.
argos::CCommandLineArgParser::CCommandLineArgParser | ( | ) |
Class constructor.
Definition at line 15 of file command_line_arg_parser.cpp.
|
virtual |
Class destructor.
Definition at line 22 of file command_line_arg_parser.cpp.
|
inline |
Adds an argument to the parser.
ch_short_option | A single character for the short option |
str_long_option | The long option |
str_description | The description shown by PrintUsage() |
t_buffer | The buffer variable to associate to this entry |
Definition at line 132 of file command_line_arg_parser.h.
|
inline |
Adds a flag to the parser.
ch_short_option | A single character for the short option |
str_long_option | The long option |
str_description | The description shown by PrintUsage() |
b_flag | The boolean variable to associate to this entry |
Definition at line 111 of file command_line_arg_parser.h.
|
virtual |
Parses the arguments on the command line.
n_argc | The number of arguments to parse |
ppch_argv | The string array containing the command line |
Reimplemented in argos::CARGoSCommandLineArgParser.
Definition at line 48 of file command_line_arg_parser.cpp.
|
virtual |
Prints the arguments on the log.
If you want a better layout, you need to extend this method.
c_log | The destination log: LOG or LOGERR |
Reimplemented in argos::CARGoSCommandLineArgParser.
Definition at line 32 of file command_line_arg_parser.cpp.