tlx
|
Command line parser which automatically fills variables and prints nice usage messages. More...
#include <cmdline_parser.hpp>
Classes | |
class | Argument |
base class of all options and parameters More... | |
class | ArgumentBool |
specialization of argument for boolean flags (can only be set to true). More... | |
class | ArgumentBytes32 |
specialization of argument for SI/IEC suffixes byte size options or parameters More... | |
class | ArgumentBytes64 |
specialization of argument for SI/IEC suffixes byte size options or parameters More... | |
class | ArgumentDouble |
specialization of argument for double options or parameters More... | |
class | ArgumentFloat |
specialization of argument for float options or parameters More... | |
class | ArgumentInt |
specialization of argument for integer options or parameters More... | |
class | ArgumentSizeT |
specialization of argument for size_t options or parameters More... | |
class | ArgumentString |
specialization of argument for string options or parameters More... | |
class | ArgumentStringlist |
specialization of argument for multiple string options or parameters More... | |
class | ArgumentUnsigned |
specialization of argument for unsigned integer options or parameters More... | |
Public Member Functions | |
CmdlineParser () | |
Constructor. | |
~CmdlineParser () | |
Delete all added arguments. | |
void | set_description (const std::string &description) |
Set description of program, text will be wrapped. | |
void | set_author (const std::string &author) |
Set author of program, will be wrapped. | |
void | set_verbose_process (bool verbose_process) |
Set verbose processing of command line arguments. | |
void | print_usage (std::ostream &os) |
output nicely formatted usage information including description of all parameters and options. | |
void | print_usage () |
output to std::cout nicely formatted usage information including description of all parameters and options. | |
CmdlineParser & | sort () |
sort options by key (but not the positional parameters) | |
bool | process (int argc, const char *const *argv, std::ostream &os) |
parse command line options as specified by the options and parameters added. | |
bool | process (int argc, const char *const *argv) |
parse command line options as specified by the options and parameters added. | |
void | print_result (std::ostream &os) |
print nicely formatted result of processing | |
void | print_result () |
print nicely formatted result of processing to std::cout | |
Add Option with short -k, –longkey, and description. | |
void | add_bool (char key, const std::string &longkey, bool &dest, const std::string &desc) |
add boolean option flag -key, –longkey with description and store to dest | |
void | add_flag (char key, const std::string &longkey, bool &dest, const std::string &desc) |
add boolean option flag -key, –longkey with description and store to dest. | |
void | add_int (char key, const std::string &longkey, int &dest, const std::string &desc) |
add signed integer option -key, –longkey with description and store to dest | |
void | add_unsigned (char key, const std::string &longkey, unsigned int &dest, const std::string &desc) |
add unsigned integer option -key, –longkey with description and store to dest | |
void | add_uint (char key, const std::string &longkey, unsigned int &dest, const std::string &desc) |
add unsigned integer option -key, –longkey with description and store to dest. | |
void | add_size_t (char key, const std::string &longkey, size_t &dest, const std::string &desc) |
add size_t option -key, –longkey with description and store to dest | |
void | add_float (char key, const std::string &longkey, float &dest, const std::string &desc) |
add float option -key, –longkey with description and store to dest | |
void | add_double (char key, const std::string &longkey, double &dest, const std::string &desc) |
add double option -key, –longkey with description and store to dest | |
void | add_bytes (char key, const std::string &longkey, std::uint32_t &dest, const std::string &desc) |
add SI/IEC suffixes byte size option -key, –longkey and store to 32-bit dest | |
void | add_bytes (char key, const std::string &longkey, std::uint64_t &dest, const std::string &desc) |
add SI/IEC suffixes byte size option -key, –longkey and store to 64-bit dest | |
void | add_string (char key, const std::string &longkey, std::string &dest, const std::string &desc) |
add string option -key, –longkey and store to dest | |
void | add_stringlist (char key, const std::string &longkey, std::vector< std::string > &dest, const std::string &desc) |
add string list option -key, –longkey and store to dest | |
Add Option with –longkey and description. | |
void | add_bool (const std::string &longkey, bool &dest, const std::string &desc) |
add boolean option flag –longkey with description and store to dest | |
void | add_flag (const std::string &longkey, bool &dest, const std::string &desc) |
add boolean option flag –longkey with description and store to dest. | |
void | add_int (const std::string &longkey, int &dest, const std::string &desc) |
add signed integer option –longkey with description and store to dest | |
void | add_unsigned (const std::string &longkey, unsigned int &dest, const std::string &desc) |
add unsigned integer option –longkey with description and store to dest | |
void | add_uint (const std::string &longkey, unsigned int &dest, const std::string &desc) |
add unsigned integer option –longkey with description and store to dest. | |
void | add_size_t (const std::string &longkey, size_t &dest, const std::string &desc) |
add size_t option –longkey with description and store to dest | |
void | add_float (const std::string &longkey, float &dest, const std::string &desc) |
add float option –longkey with description and store to dest | |
void | add_double (const std::string &longkey, double &dest, const std::string &desc) |
add double option –longkey with description and store to dest | |
void | add_bytes (const std::string &longkey, std::uint32_t &dest, const std::string &desc) |
add SI/IEC suffixes byte size option –longkey and store to 32-bit dest | |
void | add_bytes (const std::string &longkey, std::uint64_t &dest, const std::string &desc) |
add SI/IEC suffixes byte size option –longkey and store to 64-bit dest | |
void | add_string (const std::string &longkey, std::string &dest, const std::string &desc) |
add string option –longkey and store to dest | |
void | add_stringlist (const std::string &longkey, std::vector< std::string > &dest, const std::string &desc) |
add string list option –longkey and store to dest | |
Add Option with short -k, –longkey, [keytype], and description. | |
void | add_bool (char key, const std::string &longkey, const std::string &keytype, bool &dest, const std::string &desc) |
add boolean option flag -key, –longkey [keytype] with description and store to dest | |
void | add_flag (char key, const std::string &longkey, const std::string &keytype, bool &dest, const std::string &desc) |
add boolean option flag -key, –longkey [keytype] with description and store to dest. | |
void | add_int (char key, const std::string &longkey, const std::string &keytype, int &dest, const std::string &desc) |
add signed integer option -key, –longkey [keytype] with description and store to dest | |
void | add_unsigned (char key, const std::string &longkey, const std::string &keytype, unsigned int &dest, const std::string &desc) |
add unsigned integer option -key, –longkey [keytype] with description and store to dest | |
void | add_uint (char key, const std::string &longkey, const std::string &keytype, unsigned int &dest, const std::string &desc) |
add unsigned integer option -key, –longkey [keytype] with description and store to dest. | |
void | add_size_t (char key, const std::string &longkey, const std::string &keytype, size_t &dest, const std::string &desc) |
add size_t option -key, –longkey [keytype] with description and store to dest | |
void | add_float (char key, const std::string &longkey, const std::string &keytype, float &dest, const std::string &desc) |
add float option -key, –longkey [keytype] with description and store to dest | |
void | add_double (char key, const std::string &longkey, const std::string &keytype, double &dest, const std::string &desc) |
add double option -key, –longkey [keytype] with description and store to dest | |
void | add_bytes (char key, const std::string &longkey, const std::string &keytype, std::uint32_t &dest, const std::string &desc) |
add SI/IEC suffixes byte size option -key, –longkey [keytype] and store to 64-bit dest | |
void | add_bytes (char key, const std::string &longkey, const std::string &keytype, std::uint64_t &dest, const std::string &desc) |
add SI/IEC suffixes byte size option -key, –longkey [keytype] and store to 64-bit dest | |
void | add_string (char key, const std::string &longkey, const std::string &keytype, std::string &dest, const std::string &desc) |
add string option -key, –longkey [keytype] and store to dest | |
void | add_stringlist (char key, const std::string &longkey, const std::string &keytype, std::vector< std::string > &dest, const std::string &desc) |
add string list option -key, –longkey [keytype] and store to dest | |
Add Required Parameter [name] with description. | |
void | add_param_int (const std::string &name, int &dest, const std::string &desc) |
add signed integer parameter [name] with description and store to dest | |
void | add_param_unsigned (const std::string &name, unsigned int &dest, const std::string &desc) |
add unsigned integer parameter [name] with description and store to dest | |
void | add_param_uint (const std::string &name, unsigned int &dest, const std::string &desc) |
add unsigned integer parameter [name] with description and store to dest. | |
void | add_param_size_t (const std::string &name, size_t &dest, const std::string &desc) |
add size_t parameter [name] with description and store to dest | |
void | add_param_float (const std::string &name, float &dest, const std::string &desc) |
add float parameter [name] with description and store to dest | |
void | add_param_double (const std::string &name, double &dest, const std::string &desc) |
add double parameter [name] with description and store to dest | |
void | add_param_bytes (const std::string &name, std::uint32_t &dest, const std::string &desc) |
add SI/IEC suffixes byte size parameter [name] with description and store to dest | |
void | add_param_bytes (const std::string &name, std::uint64_t &dest, const std::string &desc) |
add SI/IEC suffixes byte size parameter [name] with description and store to dest | |
void | add_param_string (const std::string &name, std::string &dest, const std::string &desc) |
add string parameter [name] with description and store to dest | |
void | add_param_stringlist (const std::string &name, std::vector< std::string > &dest, const std::string &desc) |
add string list parameter [name] with description and store to dest. | |
Add Optional Parameter [name] with description. | |
void | add_opt_param_int (const std::string &name, int &dest, const std::string &desc) |
add optional signed integer parameter [name] with description and store to dest | |
void | add_opt_param_unsigned (const std::string &name, unsigned int &dest, const std::string &desc) |
add optional unsigned integer parameter [name] with description and store to dest | |
void | add_opt_param_uint (const std::string &name, unsigned int &dest, const std::string &desc) |
add optional unsigned integer parameter [name] with description and store to dest. | |
void | add_opt_param_size_t (const std::string &name, size_t &dest, const std::string &desc) |
add optional size_t parameter [name] with description and store to dest | |
void | add_opt_param_float (const std::string &name, float &dest, const std::string &desc) |
add optional float parameter [name] with description and store to dest | |
void | add_opt_param_double (const std::string &name, double &dest, const std::string &desc) |
add optional double parameter [name] with description and store to dest | |
void | add_opt_param_bytes (const std::string &name, std::uint32_t &dest, const std::string &desc) |
add optional SI/IEC suffixes byte size parameter [name] with description and store to dest | |
void | add_opt_param_bytes (const std::string &name, std::uint64_t &dest, const std::string &desc) |
add optional SI/IEC suffixes byte size parameter [name] with description and store to dest | |
void | add_opt_param_string (const std::string &name, std::string &dest, const std::string &desc) |
add optional string parameter [name] with description and store to dest | |
void | add_opt_param_stringlist (const std::string &name, std::vector< std::string > &dest, const std::string &desc) |
add optional string parameter [name] with description and store to dest | |
Static Public Member Functions | |
static void | output_wrap (std::ostream &os, const std::string &text, size_t wraplen, size_t indent_first=0, size_t indent_rest=0, size_t current=0, size_t indent_newline=0) |
Wrap a long string at spaces into lines. | |
Private Types | |
using | ArgumentList |
option and parameter list type | |
Private Member Functions | |
void | calc_option_max (const Argument *arg) |
update maximum formatting width for new option | |
void | calc_param_max (const Argument *arg) |
update maximum formatting width for new parameter | |
void | print_option_error (int argc, const char *const *argv, const Argument *arg, std::ostream &os) |
print error about option. | |
void | print_param_error (int argc, const char *const *argv, const Argument *arg, std::ostream &os) |
print error about parameter. | |
Private Attributes | |
ArgumentList | option_list_ |
list of options available | |
ArgumentList | param_list_ |
list of parameters, both required and optional | |
size_t | option_max_width_ |
formatting width for options, '-s, –switch <#>' | |
size_t | param_max_width_ |
formatting width for parameters, 'param <#>' | |
const char * | program_name_ |
argv[0] for usage. | |
bool | verbose_process_ |
verbose processing of arguments | |
std::string | description_ |
user set description of program, will be wrapped | |
std::string | author_ |
user set author of program, will be wrapped | |
unsigned int | line_wrap_ |
set line wrap length | |
Static Private Attributes | |
static constexpr int | max_type_name_ |
maximum length of a type_name() result | |
Command line parser which automatically fills variables and prints nice usage messages.
This is a straightforward command line parser in C++, which will recognize short options -s, long options –long and parameters, both required and optional. It will automatically parse integers and byte sizes with SI/IEC suffixes (e.g. 1 GiB). It also works with lists of strings, e.g. multiple filenames.
When running the program above without arguments, it will print:
$ ./tlx_cmdline_parser_example Missing required argument for parameter 'filename' Usage: ./tlx_cmdline_parser_example [options] <filename> This may some day be a useful program, which solves many serious problems of the real world and achives global peace. Author: Timo Bingmann <tb@panthema.net> Parameters: filename A filename to process Options: -r, --rounds N Run N rounds of the experiment. -s, --size Number of bytes to process.
Nice output, notice the line wrapping of the description and formatting of parameters and arguments. These too are wrapped if the description is too long.
We now try to give the program some arguments:
$ ./tlx_cmdline_parser_example -s 2GiB -r 42 /dev/null Option -s, --size set to 2147483648. Option -r, --rounds N set to 42. Parameter filename set to "/dev/null". Command line parsed okay. Parameters: filename (string) "/dev/null" Options: -r, --rounds N (unsigned integer) 42 -s, --size (bytes) 2147483648
The output shows pretty much what happens. The command line parser is by default in a verbose mode outputting all arguments and values parsed. The debug summary shows to have values the corresponding variables were set.
One feature worth naming is that the parser also supports lists of strings, i.e. std::vector<std::string>
via CmdlineParser::add_param_stringlist() and similar.
Definition at line 78 of file cmdline_parser.hpp.
|
private |
option and parameter list type
Definition at line 96 of file cmdline_parser.hpp.
CmdlineParser | ( | ) |
Constructor.
Definition at line 491 of file cmdline_parser.cpp.
~CmdlineParser | ( | ) |
Delete all added arguments.
Definition at line 493 of file cmdline_parser.cpp.
void add_bool | ( | char | key, |
const std::string & | longkey, | ||
bool & | dest, | ||
const std::string & | desc ) |
add boolean option flag -key, –longkey with description and store to dest
Definition at line 613 of file cmdline_parser.cpp.
void add_bool | ( | char | key, |
const std::string & | longkey, | ||
const std::string & | keytype, | ||
bool & | dest, | ||
const std::string & | desc ) |
add boolean option flag -key, –longkey [keytype] with description and store to dest
Definition at line 517 of file cmdline_parser.cpp.
void add_bool | ( | const std::string & | longkey, |
bool & | dest, | ||
const std::string & | desc ) |
add boolean option flag –longkey with description and store to dest
Definition at line 676 of file cmdline_parser.cpp.
void add_bytes | ( | char | key, |
const std::string & | longkey, | ||
const std::string & | keytype, | ||
std::uint32_t & | dest, | ||
const std::string & | desc ) |
add SI/IEC suffixes byte size option -key, –longkey [keytype] and store to 64-bit dest
Definition at line 577 of file cmdline_parser.cpp.
void add_bytes | ( | char | key, |
const std::string & | longkey, | ||
const std::string & | keytype, | ||
std::uint64_t & | dest, | ||
const std::string & | desc ) |
add SI/IEC suffixes byte size option -key, –longkey [keytype] and store to 64-bit dest
Definition at line 585 of file cmdline_parser.cpp.
void add_bytes | ( | char | key, |
const std::string & | longkey, | ||
std::uint32_t & | dest, | ||
const std::string & | desc ) |
add SI/IEC suffixes byte size option -key, –longkey and store to 32-bit dest
Definition at line 653 of file cmdline_parser.cpp.
void add_bytes | ( | char | key, |
const std::string & | longkey, | ||
std::uint64_t & | dest, | ||
const std::string & | desc ) |
add SI/IEC suffixes byte size option -key, –longkey and store to 64-bit dest
Definition at line 658 of file cmdline_parser.cpp.
void add_bytes | ( | const std::string & | longkey, |
std::uint32_t & | dest, | ||
const std::string & | desc ) |
add SI/IEC suffixes byte size option –longkey and store to 32-bit dest
Definition at line 716 of file cmdline_parser.cpp.
void add_bytes | ( | const std::string & | longkey, |
std::uint64_t & | dest, | ||
const std::string & | desc ) |
add SI/IEC suffixes byte size option –longkey and store to 64-bit dest
Definition at line 721 of file cmdline_parser.cpp.
void add_double | ( | char | key, |
const std::string & | longkey, | ||
const std::string & | keytype, | ||
double & | dest, | ||
const std::string & | desc ) |
add double option -key, –longkey [keytype] with description and store to dest
Definition at line 569 of file cmdline_parser.cpp.
void add_double | ( | char | key, |
const std::string & | longkey, | ||
double & | dest, | ||
const std::string & | desc ) |
add double option -key, –longkey with description and store to dest
Definition at line 648 of file cmdline_parser.cpp.
void add_double | ( | const std::string & | longkey, |
double & | dest, | ||
const std::string & | desc ) |
add double option –longkey with description and store to dest
Definition at line 711 of file cmdline_parser.cpp.
void add_flag | ( | char | key, |
const std::string & | longkey, | ||
bool & | dest, | ||
const std::string & | desc ) |
add boolean option flag -key, –longkey with description and store to dest.
identical to add_bool()
Definition at line 618 of file cmdline_parser.cpp.
void add_flag | ( | char | key, |
const std::string & | longkey, | ||
const std::string & | keytype, | ||
bool & | dest, | ||
const std::string & | desc ) |
add boolean option flag -key, –longkey [keytype] with description and store to dest.
identical to add_bool()
Definition at line 525 of file cmdline_parser.cpp.
void add_flag | ( | const std::string & | longkey, |
bool & | dest, | ||
const std::string & | desc ) |
add boolean option flag –longkey with description and store to dest.
identical to add_bool()
Definition at line 681 of file cmdline_parser.cpp.
void add_float | ( | char | key, |
const std::string & | longkey, | ||
const std::string & | keytype, | ||
float & | dest, | ||
const std::string & | desc ) |
add float option -key, –longkey [keytype] with description and store to dest
Definition at line 561 of file cmdline_parser.cpp.
void add_float | ( | char | key, |
const std::string & | longkey, | ||
float & | dest, | ||
const std::string & | desc ) |
add float option -key, –longkey with description and store to dest
Definition at line 643 of file cmdline_parser.cpp.
void add_float | ( | const std::string & | longkey, |
float & | dest, | ||
const std::string & | desc ) |
add float option –longkey with description and store to dest
Definition at line 706 of file cmdline_parser.cpp.
void add_int | ( | char | key, |
const std::string & | longkey, | ||
const std::string & | keytype, | ||
int & | dest, | ||
const std::string & | desc ) |
add signed integer option -key, –longkey [keytype] with description and store to dest
Definition at line 531 of file cmdline_parser.cpp.
void add_int | ( | char | key, |
const std::string & | longkey, | ||
int & | dest, | ||
const std::string & | desc ) |
add signed integer option -key, –longkey with description and store to dest
Definition at line 623 of file cmdline_parser.cpp.
void add_int | ( | const std::string & | longkey, |
int & | dest, | ||
const std::string & | desc ) |
add signed integer option –longkey with description and store to dest
Definition at line 686 of file cmdline_parser.cpp.
void add_opt_param_bytes | ( | const std::string & | name, |
std::uint32_t & | dest, | ||
const std::string & | desc ) |
add optional SI/IEC suffixes byte size parameter [name] with description and store to dest
Definition at line 842 of file cmdline_parser.cpp.
void add_opt_param_bytes | ( | const std::string & | name, |
std::uint64_t & | dest, | ||
const std::string & | desc ) |
add optional SI/IEC suffixes byte size parameter [name] with description and store to dest
Definition at line 849 of file cmdline_parser.cpp.
void add_opt_param_double | ( | const std::string & | name, |
double & | dest, | ||
const std::string & | desc ) |
add optional double parameter [name] with description and store to dest
Definition at line 835 of file cmdline_parser.cpp.
void add_opt_param_float | ( | const std::string & | name, |
float & | dest, | ||
const std::string & | desc ) |
add optional float parameter [name] with description and store to dest
Definition at line 829 of file cmdline_parser.cpp.
void add_opt_param_int | ( | const std::string & | name, |
int & | dest, | ||
const std::string & | desc ) |
add optional signed integer parameter [name] with description and store to dest
Definition at line 805 of file cmdline_parser.cpp.
void add_opt_param_size_t | ( | const std::string & | name, |
size_t & | dest, | ||
const std::string & | desc ) |
add optional size_t parameter [name] with description and store to dest
Definition at line 823 of file cmdline_parser.cpp.
void add_opt_param_string | ( | const std::string & | name, |
std::string & | dest, | ||
const std::string & | desc ) |
add optional string parameter [name] with description and store to dest
Definition at line 856 of file cmdline_parser.cpp.
void add_opt_param_stringlist | ( | const std::string & | name, |
std::vector< std::string > & | dest, | ||
const std::string & | desc ) |
add optional string parameter [name] with description and store to dest
Definition at line 863 of file cmdline_parser.cpp.
void add_opt_param_uint | ( | const std::string & | name, |
unsigned int & | dest, | ||
const std::string & | desc ) |
add optional unsigned integer parameter [name] with description and store to dest.
identical to add_unsigned()
Definition at line 818 of file cmdline_parser.cpp.
void add_opt_param_unsigned | ( | const std::string & | name, |
unsigned int & | dest, | ||
const std::string & | desc ) |
add optional unsigned integer parameter [name] with description and store to dest
Definition at line 811 of file cmdline_parser.cpp.
void add_param_bytes | ( | const std::string & | name, |
std::uint32_t & | dest, | ||
const std::string & | desc ) |
add SI/IEC suffixes byte size parameter [name] with description and store to dest
Definition at line 775 of file cmdline_parser.cpp.
void add_param_bytes | ( | const std::string & | name, |
std::uint64_t & | dest, | ||
const std::string & | desc ) |
add SI/IEC suffixes byte size parameter [name] with description and store to dest
Definition at line 782 of file cmdline_parser.cpp.
void add_param_double | ( | const std::string & | name, |
double & | dest, | ||
const std::string & | desc ) |
add double parameter [name] with description and store to dest
Definition at line 769 of file cmdline_parser.cpp.
void add_param_float | ( | const std::string & | name, |
float & | dest, | ||
const std::string & | desc ) |
add float parameter [name] with description and store to dest
Definition at line 763 of file cmdline_parser.cpp.
void add_param_int | ( | const std::string & | name, |
int & | dest, | ||
const std::string & | desc ) |
add signed integer parameter [name] with description and store to dest
Definition at line 739 of file cmdline_parser.cpp.
void add_param_size_t | ( | const std::string & | name, |
size_t & | dest, | ||
const std::string & | desc ) |
add size_t parameter [name] with description and store to dest
Definition at line 757 of file cmdline_parser.cpp.
void add_param_string | ( | const std::string & | name, |
std::string & | dest, | ||
const std::string & | desc ) |
add string parameter [name] with description and store to dest
Definition at line 789 of file cmdline_parser.cpp.
void add_param_stringlist | ( | const std::string & | name, |
std::vector< std::string > & | dest, | ||
const std::string & | desc ) |
add string list parameter [name] with description and store to dest.
Definition at line 795 of file cmdline_parser.cpp.
void add_param_uint | ( | const std::string & | name, |
unsigned int & | dest, | ||
const std::string & | desc ) |
add unsigned integer parameter [name] with description and store to dest.
identical to add_unsigned()
Definition at line 752 of file cmdline_parser.cpp.
void add_param_unsigned | ( | const std::string & | name, |
unsigned int & | dest, | ||
const std::string & | desc ) |
add unsigned integer parameter [name] with description and store to dest
Definition at line 745 of file cmdline_parser.cpp.
void add_size_t | ( | char | key, |
const std::string & | longkey, | ||
const std::string & | keytype, | ||
size_t & | dest, | ||
const std::string & | desc ) |
add size_t option -key, –longkey [keytype] with description and store to dest
Definition at line 553 of file cmdline_parser.cpp.
void add_size_t | ( | char | key, |
const std::string & | longkey, | ||
size_t & | dest, | ||
const std::string & | desc ) |
add size_t option -key, –longkey with description and store to dest
Definition at line 638 of file cmdline_parser.cpp.
void add_size_t | ( | const std::string & | longkey, |
size_t & | dest, | ||
const std::string & | desc ) |
add size_t option –longkey with description and store to dest
Definition at line 701 of file cmdline_parser.cpp.
void add_string | ( | char | key, |
const std::string & | longkey, | ||
const std::string & | keytype, | ||
std::string & | dest, | ||
const std::string & | desc ) |
add string option -key, –longkey [keytype] and store to dest
Definition at line 593 of file cmdline_parser.cpp.
void add_string | ( | char | key, |
const std::string & | longkey, | ||
std::string & | dest, | ||
const std::string & | desc ) |
add string option -key, –longkey and store to dest
Definition at line 663 of file cmdline_parser.cpp.
void add_string | ( | const std::string & | longkey, |
std::string & | dest, | ||
const std::string & | desc ) |
add string option –longkey and store to dest
Definition at line 726 of file cmdline_parser.cpp.
void add_stringlist | ( | char | key, |
const std::string & | longkey, | ||
const std::string & | keytype, | ||
std::vector< std::string > & | dest, | ||
const std::string & | desc ) |
add string list option -key, –longkey [keytype] and store to dest
Definition at line 601 of file cmdline_parser.cpp.
void add_stringlist | ( | char | key, |
const std::string & | longkey, | ||
std::vector< std::string > & | dest, | ||
const std::string & | desc ) |
add string list option -key, –longkey and store to dest
Definition at line 668 of file cmdline_parser.cpp.
void add_stringlist | ( | const std::string & | longkey, |
std::vector< std::string > & | dest, | ||
const std::string & | desc ) |
add string list option –longkey and store to dest
Definition at line 731 of file cmdline_parser.cpp.
void add_uint | ( | char | key, |
const std::string & | longkey, | ||
const std::string & | keytype, | ||
unsigned int & | dest, | ||
const std::string & | desc ) |
add unsigned integer option -key, –longkey [keytype] with description and store to dest.
identical to add_unsigned()
Definition at line 547 of file cmdline_parser.cpp.
void add_uint | ( | char | key, |
const std::string & | longkey, | ||
unsigned int & | dest, | ||
const std::string & | desc ) |
add unsigned integer option -key, –longkey with description and store to dest.
identical to add_unsigned()
Definition at line 633 of file cmdline_parser.cpp.
void add_uint | ( | const std::string & | longkey, |
unsigned int & | dest, | ||
const std::string & | desc ) |
add unsigned integer option –longkey with description and store to dest.
identical to add_unsigned()
Definition at line 696 of file cmdline_parser.cpp.
void add_unsigned | ( | char | key, |
const std::string & | longkey, | ||
const std::string & | keytype, | ||
unsigned int & | dest, | ||
const std::string & | desc ) |
add unsigned integer option -key, –longkey [keytype] with description and store to dest
Definition at line 539 of file cmdline_parser.cpp.
void add_unsigned | ( | char | key, |
const std::string & | longkey, | ||
unsigned int & | dest, | ||
const std::string & | desc ) |
add unsigned integer option -key, –longkey with description and store to dest
Definition at line 628 of file cmdline_parser.cpp.
void add_unsigned | ( | const std::string & | longkey, |
unsigned int & | dest, | ||
const std::string & | desc ) |
add unsigned integer option –longkey with description and store to dest
Definition at line 691 of file cmdline_parser.cpp.
|
private |
update maximum formatting width for new option
Definition at line 438 of file cmdline_parser.cpp.
|
private |
update maximum formatting width for new parameter
Definition at line 443 of file cmdline_parser.cpp.
|
static |
Wrap a long string at spaces into lines.
Prefix is added unconditionally to each line. Lines are wrapped after wraplen characters if possible.
Definition at line 450 of file cmdline_parser.cpp.
|
private |
print error about option.
Definition at line 943 of file cmdline_parser.cpp.
|
private |
print error about parameter.
Definition at line 956 of file cmdline_parser.cpp.
void print_result | ( | ) |
print nicely formatted result of processing to std::cout
Definition at line 1161 of file cmdline_parser.cpp.
void print_result | ( | std::ostream & | os | ) |
print nicely formatted result of processing
Definition at line 1115 of file cmdline_parser.cpp.
void print_usage | ( | ) |
output to std::cout nicely formatted usage information including description of all parameters and options.
Definition at line 939 of file cmdline_parser.cpp.
void print_usage | ( | std::ostream & | os | ) |
output nicely formatted usage information including description of all parameters and options.
Definition at line 881 of file cmdline_parser.cpp.
bool process | ( | int | argc, |
const char *const * | argv ) |
parse command line options as specified by the options and parameters added.
Definition at line 1111 of file cmdline_parser.cpp.
bool process | ( | int | argc, |
const char *const * | argv, | ||
std::ostream & | os ) |
parse command line options as specified by the options and parameters added.
Definition at line 969 of file cmdline_parser.cpp.
void set_author | ( | const std::string & | author | ) |
Set author of program, will be wrapped.
Definition at line 507 of file cmdline_parser.cpp.
void set_description | ( | const std::string & | description | ) |
Set description of program, text will be wrapped.
Definition at line 503 of file cmdline_parser.cpp.
void set_verbose_process | ( | bool | verbose_process | ) |
Set verbose processing of command line arguments.
Definition at line 511 of file cmdline_parser.cpp.
CmdlineParser & sort | ( | ) |
sort options by key (but not the positional parameters)
Definition at line 873 of file cmdline_parser.cpp.
|
private |
user set author of program, will be wrapped
Definition at line 117 of file cmdline_parser.hpp.
|
private |
user set description of program, will be wrapped
Definition at line 115 of file cmdline_parser.hpp.
|
private |
set line wrap length
Definition at line 120 of file cmdline_parser.hpp.
|
staticconstexprprivate |
maximum length of a type_name() result
Definition at line 123 of file cmdline_parser.hpp.
|
private |
list of options available
Definition at line 99 of file cmdline_parser.hpp.
|
private |
formatting width for options, '-s, –switch <#>'
Definition at line 104 of file cmdline_parser.hpp.
|
private |
list of parameters, both required and optional
Definition at line 101 of file cmdline_parser.hpp.
|
private |
formatting width for parameters, 'param <#>'
Definition at line 106 of file cmdline_parser.hpp.
|
private |
argv[0] for usage.
Definition at line 109 of file cmdline_parser.hpp.
|
private |
verbose processing of arguments
Definition at line 112 of file cmdline_parser.hpp.