CLI11
C++11 Command Line Interface Parser
|
Extension of App to better manage groups of options. More...
#include <App.hpp>
Public Member Functions | |
Option_group (std::string group_description, std::string group_name, App *parent) | |
Option * | add_option (Option *opt) |
Add an existing option to the Option_group. | |
void | add_options (Option *opt) |
Add an existing option to the Option_group. | |
template<typename... Args> | |
void | add_options (Option *opt, Args... args) |
Add a bunch of options to the group. | |
App * | add_subcommand (App *subcom) |
Add an existing subcommand to be a member of an option_group. | |
Option * | add_option (std::string option_name, callback_t option_callback, std::string option_description="", bool defaulted=false, std::function< std::string()> func={}) |
template<typename T , enable_if_t<!is_vector< T >::value &!std::is_const< T >::value, detail::enabler > = detail::dummy> | |
Option * | add_option (std::string option_name, T &variable, std::string option_description="", bool defaulted=false) |
Add option for non-vectors (duplicate copy needed without defaulted to avoid iostream << value ) | |
Option * | add_option (std::string option_name) |
Add option with no description or variable assignment. | |
template<typename T , enable_if_t< std::is_const< T >::value &&std::is_constructible< std::string, T >::value, detail::enabler > = detail::dummy> | |
Option * | add_option (std::string option_name, T &option_description) |
Add option with description but with no variable assignment or callback. | |
template<typename T > | |
Option * | add_option (std::string option_name, std::vector< T > &variable, std::string option_description="", bool defaulted=false) |
Add option for vectors. | |
App * | add_subcommand (std::string subcommand_name="", std::string subcommand_description="") |
Add a subcommand. Inherits INHERITABLE and OptionDefaults, and help flag. | |
App * | add_subcommand (CLI::App_p subcom) |
Add a previously created app as a subcommand. | |
![]() | |
void | _move_option (Option *opt, App *app) |
function that could be used by subclasses of App to shift options around into subcommands | |
App (std::string app_description="", std::string app_name="") | |
Create a new program. Pass in the same arguments as main(), along with a help string. | |
virtual | ~App ()=default |
virtual destructor | |
App * | callback (std::function< void()> app_callback) |
App * | preparse_callback (std::function< void(size_t)> pp_callback) |
App * | name (std::string app_name="") |
Set a name for the app (empty will use parser to set the name) | |
App * | allow_extras (bool allow=true) |
Remove the error when extras are left over on the command line. | |
App * | required (bool require=true) |
Remove the error when extras are left over on the command line. | |
App * | disabled (bool disable=true) |
Disable the subcommand or option group. | |
App * | disabled_by_default (bool disable=true) |
Set the subcommand to be disabled by default, so on clear(), at the start of each parse it is disabled. | |
App * | enabled_by_default (bool enable=true) |
App * | immediate_callback (bool immediate=true) |
Set the subcommand callback to be executed immediately on subcommand completion. | |
App * | validate_positionals (bool validate=true) |
Set the subcommand to validate positional arguments before assigning. | |
App * | allow_config_extras (bool allow=true) |
App * | prefix_command (bool allow=true) |
Do not parse anything after the first unrecognized option and return. | |
App * | ignore_case (bool value=true) |
Ignore case. Subcommands inherit value. | |
App * | allow_windows_style_options (bool value=true) |
Allow windows style options, such as /opt . First matching short or long name used. Subcommands inherit value. | |
App * | positionals_at_end (bool value=true) |
Specify that the positional arguments are only at the end of the sequence. | |
App * | ignore_underscore (bool value=true) |
Ignore underscore. Subcommands inherit value. | |
App * | formatter (std::shared_ptr< FormatterBase > fmt) |
Set the help formatter. | |
App * | formatter_fn (std::function< std::string(const App *, std::string, AppFormatMode)> fmt) |
Set the help formatter. | |
App * | config_formatter (std::shared_ptr< Config > fmt) |
Set the config formatter. | |
bool | parsed () const |
Check to see if this subcommand was parsed, true only if received on command line. | |
OptionDefaults * | option_defaults () |
Get the OptionDefault object, to set option defaults. | |
App * | add_subcommand (std::string subcommand_name="", std::string subcommand_description="") |
Add a subcommand. Inherits INHERITABLE and OptionDefaults, and help flag. | |
App * | add_subcommand (CLI::App_p subcom) |
Add a previously created app as a subcommand. | |
bool | remove_subcommand (App *subcom) |
Removes a subcommand from the App. Takes a subcommand pointer. Returns true if found and removed. | |
App * | get_subcommand (App *subcom) const |
App * | get_subcommand (std::string subcom) const |
Check to see if a subcommand is part of this command (text version) | |
App * | get_subcommand (int index=0) const |
Get a pointer to subcommand by index. | |
CLI::App_p | get_subcommand_ptr (App *subcom) const |
Check to see if a subcommand is part of this command and get a shared_ptr to it. | |
CLI::App_p | get_subcommand_ptr (std::string subcom) const |
Check to see if a subcommand is part of this command (text version) | |
CLI::App_p | get_subcommand_ptr (int index=0) const |
Get an owning pointer to subcommand by index. | |
App * | get_option_group (std::string group_name) const |
Check to see if an option group is part of this App. | |
size_t | count () const |
size_t | count_all () const |
App * | group (std::string group_name) |
Changes the group membership. | |
App * | require_subcommand () |
The argumentless form of require subcommand requires 1 or more subcommands. | |
App * | require_subcommand (int value) |
App * | require_subcommand (size_t min, size_t max) |
App * | require_option () |
The argumentless form of require option requires 1 or more options be used. | |
App * | require_option (int value) |
App * | require_option (size_t min, size_t max) |
App * | fallthrough (bool value=true) |
operator bool () const | |
virtual void | pre_callback () |
size_t | count (std::string option_name) const |
Counts the number of times the given option was passed. | |
std::vector< App * > | get_subcommands () const |
std::vector< const App * > | get_subcommands (const std::function< bool(const App *)> &filter) const |
std::vector< App * > | get_subcommands (const std::function< bool(App *)> &filter) |
bool | got_subcommand (App *subcom) const |
Check to see if given subcommand was selected. | |
bool | got_subcommand (std::string subcommand_name) const |
Check with name instead of pointer to see if subcommand was selected. | |
App * | excludes (Option *opt) |
Sets excluded options for the subcommand. | |
App * | excludes (App *app) |
Sets excluded subcommands for the subcommand. | |
bool | remove_excludes (Option *opt) |
Removes an option from the excludes list of this subcommand. | |
bool | remove_excludes (App *app) |
Removes a subcommand from this excludes list of this subcommand. | |
std::shared_ptr< FormatterBase > | get_formatter () const |
Access the formatter. | |
std::shared_ptr< Config > | get_config_formatter () const |
Access the config formatter. | |
std::string | get_description () const |
Get the app or subcommand description. | |
App * | description (std::string app_description) |
Set the description of the app. | |
std::vector< const Option * > | get_options (const std::function< bool(const Option *)> filter={}) const |
Get the list of options (user facing function, so returns raw pointers), has optional filter function. | |
Option * | get_option_no_throw (std::string option_name) noexcept |
Get an option by name (noexcept non-const version) | |
const Option * | get_option_no_throw (std::string option_name) const noexcept |
Get an option by name (noexcept const version) | |
const Option * | get_option (std::string option_name) const |
Get an option by name. | |
Option * | get_option (std::string option_name) |
Get an option by name (non-const version) | |
const Option * | operator[] (const std::string &option_name) const |
Shortcut bracket operator for getting a pointer to an option. | |
const Option * | operator[] (const char *option_name) const |
Shortcut bracket operator for getting a pointer to an option. | |
bool | get_ignore_case () const |
Check the status of ignore_case. | |
bool | get_ignore_underscore () const |
Check the status of ignore_underscore. | |
bool | get_fallthrough () const |
Check the status of fallthrough. | |
bool | get_allow_windows_style_options () const |
Check the status of the allow windows style options. | |
bool | get_positionals_at_end () const |
Check the status of the allow windows style options. | |
const std::string & | get_group () const |
Get the group of this subcommand. | |
const std::string & | get_footer () const |
Get footer. | |
size_t | get_require_subcommand_min () const |
Get the required min subcommand value. | |
size_t | get_require_subcommand_max () const |
Get the required max subcommand value. | |
size_t | get_require_option_min () const |
Get the required min option value. | |
size_t | get_require_option_max () const |
Get the required max option value. | |
bool | get_prefix_command () const |
Get the prefix command status. | |
bool | get_allow_extras () const |
Get the status of allow extras. | |
bool | get_required () const |
Get the status of required. | |
bool | get_disabled () const |
Get the status of disabled. | |
bool | get_immediate_callback () const |
Get the status of disabled. | |
bool | get_disabled_by_default () const |
Get the status of disabled by default. | |
bool | get_enabled_by_default () const |
Get the status of disabled by default. | |
bool | get_validate_positionals () const |
Get the status of validating positionals. | |
bool | get_allow_config_extras () const |
Get the status of allow extras. | |
Option * | get_help_ptr () |
Get a pointer to the help flag. | |
const Option * | get_help_ptr () const |
Get a pointer to the help flag. (const) | |
const Option * | get_help_all_ptr () const |
Get a pointer to the help all flag. (const) | |
Option * | get_config_ptr () |
Get a pointer to the config option. | |
const Option * | get_config_ptr () const |
Get a pointer to the config option. (const) | |
App * | get_parent () |
Get the parent of this subcommand (or nullptr if master app) | |
const App * | get_parent () const |
Get the parent of this subcommand (or nullptr if master app) (const version) | |
std::string | get_name () const |
Get the name of the current app. | |
std::string | get_display_name () const |
Get a display name for an app. | |
bool | check_name (std::string name_to_check) const |
Check the name, case insensitive and underscore insensitive if set. | |
std::vector< std::string > | get_groups () const |
Get the groups available directly from this option (in order) | |
const std::vector< Option * > & | parse_order () const |
This gets a vector of pointers with the original parse order. | |
std::vector< std::string > | remaining (bool recurse=false) const |
This returns the missing options from the current subcommand. | |
std::vector< std::string > | remaining_for_passthrough (bool recurse=false) const |
This returns the missing options in a form ready for processing by another command line program. | |
size_t | remaining_size (bool recurse=false) const |
This returns the number of remaining options, minus the – separator. | |
App * | footer (std::string footer_string) |
Set footer. | |
std::string | config_to_str (bool default_also=false, bool write_description=false) const |
std::string | help (std::string prev="", AppFormatMode mode=AppFormatMode::Normal) const |
void | clear () |
Reset the parsed data. | |
void | parse (int argc, const char *const *argv) |
void | parse (std::string commandline, bool program_name_included=false) |
void | parse (std::vector< std::string > &args) |
void | parse (std::vector< std::string > &&args) |
The real work is done here. Expects a reversed vector. | |
void | failure_message (std::function< std::string(const App *, const Error &e)> function) |
Provide a function to print a help message. The function gets access to the App pointer and error. | |
int | exit (const Error &e, std::ostream &out=std::cout, std::ostream &err=std::cerr) const |
Print a nice error message and return the exit code. More... | |
Option * | add_option (std::string option_name, callback_t option_callback, std::string option_description="", bool defaulted=false, std::function< std::string()> func={}) |
template<typename T , enable_if_t<!is_vector< T >::value &!std::is_const< T >::value, detail::enabler > = detail::dummy> | |
Option * | add_option (std::string option_name, T &variable, std::string option_description="", bool defaulted=false) |
Add option for non-vectors (duplicate copy needed without defaulted to avoid iostream << value ) More... | |
template<typename T , enable_if_t<!is_vector< T >::value, detail::enabler > = detail::dummy> | |
Option * | add_option_function (std::string option_name, const std::function< void(const T &)> &func, std::string option_description="") |
Add option for a callback of a specific type. More... | |
Option * | add_option (std::string option_name) |
Add option with no description or variable assignment. | |
template<typename T , enable_if_t< std::is_const< T >::value &&std::is_constructible< std::string, T >::value, detail::enabler > = detail::dummy> | |
Option * | add_option (std::string option_name, T &option_description) |
Add option with description but with no variable assignment or callback. | |
template<typename T > | |
Option * | add_option (std::string option_name, std::vector< T > &variable, std::string option_description="", bool defaulted=false) |
Add option for vectors. More... | |
template<typename T , enable_if_t< is_vector< T >::value, detail::enabler > = detail::dummy> | |
Option * | add_option_function (std::string option_name, const std::function< void(const T &)> &func, std::string option_description="") |
Add option for a vector callback of a specific type. More... | |
Option * | set_help_flag (std::string flag_name="", const std::string &help_description="") |
Set a help flag, replace the existing one if present. | |
Option * | set_help_all_flag (std::string help_name="", const std::string &help_description="") |
Set a help all flag, replaced the existing one if present. | |
Option * | add_flag (std::string flag_name) |
Add a flag with no description or variable assignment. | |
template<typename T , enable_if_t< std::is_const< T >::value &&std::is_constructible< std::string, T >::value, detail::enabler > = detail::dummy> | |
Option * | add_flag (std::string flag_name, T &flag_description) |
template<typename T , enable_if_t< std::is_integral< T >::value &&!is_bool< T >::value, detail::enabler > = detail::dummy> | |
Option * | add_flag (std::string flag_name, T &flag_count, std::string flag_description="") |
template<typename T , enable_if_t<!is_vector< T >::value &&!std::is_const< T >::value &&(!std::is_integral< T >::value||is_bool< T >::value) &&!std::is_constructible< std::function< void(int)>, T >::value, detail::enabler > = detail::dummy> | |
Option * | add_flag (std::string flag_name, T &flag_result, std::string flag_description="") |
template<typename T , enable_if_t<!std::is_assignable< std::function< void(int64_t)>, T >::value, detail::enabler > = detail::dummy> | |
Option * | add_flag (std::string flag_name, std::vector< T > &flag_results, std::string flag_description="") |
Vector version to capture multiple flags. More... | |
Option * | add_flag_callback (std::string flag_name, std::function< void(void)> function, std::string flag_description="") |
Add option for callback that is triggered with a true flag and takes no arguments. More... | |
Option * | add_flag_function (std::string flag_name, std::function< void(int64_t)> function, std::string flag_description="") |
Add option for callback with an integer value. More... | |
template<typename T > | |
Option * | add_set (std::string option_name, T &member, std::set< T > options, std::string option_description="") |
Add set of options (No default, temp reference, such as an inline set) DEPRECATED. More... | |
template<typename T > | |
Option * | add_mutable_set (std::string option_name, T &member, const std::set< T > &options, std::string option_description="") |
Add set of options (No default, set can be changed afterwards - do not destroy the set) DEPRECATED. More... | |
template<typename T > | |
Option * | add_set (std::string option_name, T &member, std::set< T > options, std::string option_description, bool defaulted) |
Add set of options (with default, static set, such as an inline set) DEPRECATED. More... | |
template<typename T > | |
Option * | add_mutable_set (std::string option_name, T &member, const std::set< T > &options, std::string option_description, bool defaulted) |
Add set of options (with default, set can be changed afterwards - do not destroy the set) DEPRECATED. More... | |
CLI11_DEPRECATED ("Use ->transform(CLI::IsMember(..., CLI::ignore_case)) instead") Option *add_set_ignore_case(std | |
Add set of options, string only, ignore case (no default, static set) DEPRECATED. | |
CLI11_DEPRECATED ("Use ->transform(CLI::IsMember(..., CLI::ignore_case)) with a (shared) pointer instead") Option *add_mutable_set_ignore_case(std | |
CLI11_DEPRECATED ("Use ->transform(CLI::IsMember(..., CLI::ignore_case)) instead") Option *add_set_ignore_case(std | |
Add set of options, string only, ignore case (default, static set) DEPRECATED. | |
CLI11_DEPRECATED ("Use ->transform(CLI::IsMember(...)) with a (shared) pointer instead") Option *add_mutable_set_ignore_case(std | |
CLI11_DEPRECATED ("Use ->transform(CLI::IsMember(..., CLI::ignore_underscore)) instead") Option *add_set_ignore_underscore(std | |
Add set of options, string only, ignore underscore (no default, static set) DEPRECATED. | |
CLI11_DEPRECATED ("Use ->transform(CLI::IsMember(..., CLI::ignore_underscore)) with a (shared) pointer instead") Option *add_mutable_set_ignore_underscore(std | |
CLI11_DEPRECATED ("Use ->transform(CLI::IsMember(..., CLI::ignore_underscore)) instead") Option *add_set_ignore_underscore(std | |
Add set of options, string only, ignore underscore (default, static set) DEPRECATED. | |
CLI11_DEPRECATED ("Use ->transform(CLI::IsMember(..., CLI::ignore_underscore)) with a (shared) pointer instead") Option *add_mutable_set_ignore_underscore(std | |
CLI11_DEPRECATED ("Use ->transform(CLI::IsMember(..., CLI::ignore_case, CLI::ignore_underscore)) instead") Option *add_set_ignore_case_underscore(std | |
Add set of options, string only, ignore underscore and case (no default, static set) DEPRECATED. | |
CLI11_DEPRECATED ("Use ->transform(CLI::IsMember(..., CLI::ignore_case, CLI::ignore_underscore)) with a (shared) pointer instead") Option *add_mutable_set_ignore_case_underscore(std | |
CLI11_DEPRECATED ("Use ->transform(CLI::IsMember(..., CLI::ignore_case, CLI::ignore_underscore)) instead") Option *add_set_ignore_case_underscore(std | |
Add set of options, string only, ignore underscore and case (default, static set) DEPRECATED. | |
CLI11_DEPRECATED ("Use ->transform(CLI::IsMember(..., CLI::ignore_case, CLI::ignore_underscore)) with a (shared) pointer instead") Option *add_mutable_set_ignore_case_underscore(std | |
template<typename T > | |
Option * | add_complex (std::string option_name, T &variable, std::string option_description="", bool defaulted=false, std::string label="COMPLEX") |
Add a complex number. | |
Option * | set_config (std::string option_name="", std::string default_filename="", std::string help_message="Read an ini file", bool config_required=false) |
Set a configuration ini file option, or clear it if no name passed. | |
bool | remove_option (Option *opt) |
Removes an option from the App. Takes an option pointer. Returns true if found and removed. | |
template<typename T = Option_group> | |
T * | add_option_group (std::string group_name, std::string group_description="") |
creates an option group as part of the given app | |
Additional Inherited Members | |
![]() | |
using | missing_t = std::vector< std::pair< detail::Classifier, std::string > > |
![]() | |
App (std::string app_description, std::string app_name, App *parent) | |
Special private constructor for subcommand. More... | |
void | _validate () const |
void | _configure () |
void | run_callback () |
Internal function to run (App) callback, bottom up. | |
bool | _valid_subcommand (const std::string ¤t, bool ignore_used=true) const |
Check to see if a subcommand is valid. Give up immediately if subcommand max has been reached. | |
detail::Classifier | _recognize (const std::string ¤t, bool ignore_used_subcommands=true) const |
Selects a Classifier enum based on the type of the current argument. | |
void | _process_ini () |
Read and process an ini file (main app only) | |
void | _process_env () |
Get envname options if not yet passed. Runs on all subcommands. | |
void | _process_callbacks () |
Process callbacks. Runs on all subcommands. | |
void | _process_help_flags (bool trigger_help=false, bool trigger_all_help=false) const |
void | _process_requirements () |
Verify required options and cross requirements. Subcommands too (only if selected). | |
void | _process () |
Process callbacks and such. | |
void | _process_extras () |
Throw an error if anything is left over and should not be. | |
void | _process_extras (std::vector< std::string > &args) |
void | increment_parsed () |
Internal function to recursively increment the parsed counter on the current app as well unnamed subcommands. | |
void | _parse (std::vector< std::string > &args) |
Internal parse function. | |
void | _parse (std::vector< std::string > &&args) |
Internal parse function. | |
void | _parse_config (std::vector< ConfigItem > &args) |
bool | _parse_single_config (const ConfigItem &item, size_t level=0) |
Fill in a single config option. | |
bool | _parse_single (std::vector< std::string > &args, bool &positional_only) |
size_t | _count_remaining_positionals (bool required_only=false) const |
Count the required remaining positional arguments. | |
bool | _has_remaining_positionals () const |
Count the required remaining positional arguments. | |
bool | _parse_positional (std::vector< std::string > &args) |
App * | _find_subcommand (const std::string &subc_name, bool ignore_disabled, bool ignore_used) const noexcept |
bool | _parse_subcommand (std::vector< std::string > &args) |
bool | _parse_arg (std::vector< std::string > &args, detail::Classifier current_type) |
void | _trigger_pre_parse (size_t remaining_args) |
Trigger the pre_parse callback if needed. | |
App * | _get_fallthrough_parent () |
Get the appropriate parent to fallthrough to which is the first one that has a name or the main app. | |
void | _move_to_missing (detail::Classifier val_type, const std::string &val) |
Helper function to place extra values in the most appropriate position. | |
![]() | |
std::string | name_ |
Subcommand name or program name (from parser if name is empty) | |
std::string | description_ |
Description of the current program/subcommand. | |
bool | allow_extras_ {false} |
If true, allow extra arguments (ie, don't throw an error). INHERITABLE. | |
bool | allow_config_extras_ {false} |
If true, allow extra arguments in the ini file (ie, don't throw an error). INHERITABLE. | |
bool | prefix_command_ {false} |
If true, return immediately on an unrecognized option (implies allow_extras) INHERITABLE. | |
bool | has_automatic_name_ {false} |
If set to true the name was automatically generated from the command line vs a user set name. | |
bool | required_ {false} |
If set to true the subcommand is required to be processed and used, ignored for main app. | |
bool | disabled_ {false} |
If set to true the subcommand is disabled and cannot be used, ignored for main app. | |
bool | pre_parse_called_ {false} |
Flag indicating that the pre_parse_callback has been triggered. | |
bool | immediate_callback_ {false} |
std::function< void(size_t)> | pre_parse_callback_ |
This is a function that runs prior to the start of parsing. | |
std::function< void()> | callback_ |
This is a function that runs when complete. Great for subcommands. Can throw. | |
OptionDefaults | option_defaults_ |
The default values for options, customizable and changeable INHERITABLE. | |
std::vector< Option_p > | options_ |
The list of options, stored locally. | |
std::vector< App_p > | subcommands_ |
Storage for subcommand list. | |
bool | ignore_case_ {false} |
If true, the program name is not case sensitive INHERITABLE. | |
bool | ignore_underscore_ {false} |
If true, the program should ignore underscores INHERITABLE. | |
bool | fallthrough_ {false} |
Allow subcommand fallthrough, so that parent commands can collect commands after subcommand. INHERITABLE. | |
bool | allow_windows_style_options_ |
Allow '/' for options for Windows like options. Defaults to true on Windows, false otherwise. INHERITABLE. More... | |
bool | positionals_at_end_ {false} |
specify that positional arguments come at the end of the argument sequence not inheritable | |
bool | disabled_by_default_ {false} |
If set to true the subcommand will start each parse disabled. | |
bool | enabled_by_default_ {false} |
If set to true the subcommand will be reenabled at the start of each parse. | |
bool | validate_positionals_ {false} |
If set to true positional options are validated before assigning INHERITABLE. | |
App * | parent_ {nullptr} |
A pointer to the parent if this is a subcommand. | |
size_t | parsed_ = 0 |
Counts the number of times this command/subcommand was parsed. | |
size_t | require_subcommand_min_ = 0 |
Minimum required subcommands (not inheritable!) | |
size_t | require_subcommand_max_ = 0 |
Max number of subcommands allowed (parsing stops after this number). 0 is unlimited INHERITABLE. | |
size_t | require_option_min_ = 0 |
Minimum required options (not inheritable!) | |
size_t | require_option_max_ = 0 |
Max number of options allowed. 0 is unlimited (not inheritable) | |
std::string | group_ {"Subcommands"} |
The group membership INHERITABLE. | |
std::string | config_name_ |
The name of the connected config file. | |
bool | config_required_ {false} |
True if ini is required (throws if not present), if false simply keep going. | |
Option * | config_ptr_ {nullptr} |
Pointer to the config option. | |
std::shared_ptr< Config > | config_formatter_ {new ConfigINI()} |
This is the formatter for help printing. Default provided. INHERITABLE (same pointer) | |
std::string | footer_ |
Footer to put after all options in the help output INHERITABLE. | |
Option * | help_ptr_ {nullptr} |
A pointer to the help flag if there is one INHERITABLE. | |
Option * | help_all_ptr_ {nullptr} |
A pointer to the help all flag if there is one INHERITABLE. | |
std::shared_ptr< FormatterBase > | formatter_ {new Formatter()} |
This is the formatter for help printing. Default provided. INHERITABLE (same pointer) | |
std::function< std::string(const App *, const Error &e)> | failure_message_ = FailureMessage::simple |
The error message printing function INHERITABLE. | |
missing_t | missing_ |
std::vector< Option * > | parse_order_ |
This is a list of pointers to options with the original parse order. | |
std::vector< App * > | parsed_subcommands_ |
This is a list of the subcommands collected, in order. | |
std::set< App * > | exclude_subcommands_ |
this is a list of subcommands that are exclusionary to this one | |
std::set< Option * > | exclude_options_ |
Extension of App to better manage groups of options.
|
inline |
Add an option, will automatically understand the type for common types.
To use, create a variable with the expected type, and pass it in after the name. After start is called, you can use count to see if the value was passed, and the value will be initialized properly. Numbers, vectors, and strings are supported.
->required(), ->default, and the validators are options, The positional options take an optional number of arguments.
For example,
std::string filename; program.add_option("filename", filename, "description of filename");