Base class for arguments that hold a typed value. More...
#include <TypedArgument.hpp>
Public Member Functions | |
void | set () const override=0 |
See Argument::set() | |
bool | takes_value () const override=0 |
See Argument::takes_value() | |
const ST & | value () const |
Returns the value of this argument. More... | |
virtual TypedArgument & | check (TypedArgumentCheckFunc< T, multi > typedCheckFunc) |
See Argument::check() | |
std::unique_ptr< BaseArgument > | clone () const &override=0 |
See BaseArgument::clone(). | |
std::unique_ptr< BaseArgument > | clone ()&&override=0 |
See BaseArgument::clone(). | |
![]() | |
Argument (std::string description) | |
Create an argument with flag and/or name set by description. More... | |
Argument (std::string description, char flag) | |
Create an argument that is identified by a flag. More... | |
Argument (std::string description, std::string name) | |
Create an argument that is identified by a name. More... | |
Argument (std::string description, char flag, std::string name) | |
Create an argument that is identified by both a name and flag. More... | |
Argument (const Argument &)=default | |
Argument copy constructor. | |
Argument (Argument &&)=default | |
Argument move constructor. | |
virtual | ~Argument () |
Argument destructor. | |
Argument & | operator= (const Argument &other)=default |
Argument assignment operator. | |
Argument & | operator= (Argument &&other)=default |
Argument move assignment operator. | |
Argument & | alias (char flag) |
An a flag alias for the argument. More... | |
Argument & | alias (std::string name) |
An a name alias for the argument. More... | |
Argument & | alias (char flag, std::string name) |
An both a flag and name alias for the argument. More... | |
const std::string & | description () const |
Returns the description of this argument. More... | |
virtual Argument & | check (ArgumentCheckFunc checkFunc) |
Set the check function to use. More... | |
bool | matches () const |
Returns a pointer to this argument if it matches as a positional argument, otherwise a null-pointer. More... | |
bool | matches (char flag) const |
Returns a pointer to this argument if it matches the given flag with any alias, otherwise a null-pointer. More... | |
bool | matches (const std::string &name) const |
Returns a pointer to this argument if it matches the given name with any alias, otherwise a null-pointer. More... | |
void | find_all_arguments (std::vector< const Argument * > &collector) const override |
See BaseArgument::find_all_arguments() | |
Argument & | many (bool many=true) |
Allow the argument to occur multiple times or not. More... | |
Argument & | min (unsigned int min) |
Set the minimum number of required occurrences if set. More... | |
unsigned int | min () const |
Returns the minimum number of occurrences of this argument for it to be satisfied if set. More... | |
Argument & | max (unsigned int max) |
Set the maximum number of required occurrences. More... | |
unsigned int | max () const |
Returns the maximum number of occurrences of this argument. More... | |
unsigned int | count () const override |
See BaseArgument::count() | |
bool | can_set () const |
Returns whether this argument is still allowed to occur on the command line. More... | |
void | check_valid () const override |
See BaseArgument::check_valid() | |
std::string | usage () const override |
See BaseArgument::usage() | |
virtual std::string | ident () const |
Print a string representation of this argument to the given stream. More... | |
![]() | |
BaseArgument () | |
Base constructor. | |
BaseArgument (const BaseArgument &)=default | |
BaseArgument copy constructor. | |
BaseArgument (BaseArgument &&)=default | |
BaseArgument move constructor. | |
virtual | ~BaseArgument () |
BaseArgument destructor. | |
BaseArgument & | operator= (const BaseArgument &)=default |
BaseArgument assignment operator. | |
BaseArgument & | operator= (BaseArgument &&)=default |
BaseArgument move assignment operator. | |
operator bool () const | |
Boolean conversion operator (so you can do things like if (arg) { ... More... | |
BaseArgument & | set_required (bool required=true) |
Mark the argument as required or not. More... | |
bool | required () const |
Returns whether the argument is required. More... | |
Protected Types | |
using | ST = typename std::conditional< !multi, T, std::vector< T > >::type |
Alias for the storage type (which is a vector for MultiValueArgument types) | |
Protected Member Functions | |
TypedArgument (std::string description, ST *storage) | |
Create a TypedArgument with given description and storage pointer. More... | |
TypedArgument (std::string description, char flag, ST *storage) | |
Create a TypedArgument with given description and storage pointer, aliased to the given flag. More... | |
TypedArgument (std::string description, const std::string &name, ST *storage) | |
Create a TypedArgument with given description and storage pointer, aliased to the given name. More... | |
TypedArgument (std::string description, char flag, const std::string &name, ST *storage) | |
Create a TypedArgument with given description and storage pointer, aliased to the given flag and name. More... | |
template<bool m = multi> | |
std::enable_if<!m >::type | check () const override |
See Argument::check() | |
template<bool m = multi> | |
std::enable_if< m >::type | check () const override |
See Argument::check() | |
Protected Attributes | |
ST * | m_storage |
Pointer to value storage. | |
TypedArgumentCheckFunc< T, multi > | m_typedCheckFunc = nullptr |
Callback for typed check. | |
![]() | |
std::string | m_flags |
Flags this arguments matches. | |
std::vector< std::string > | m_names |
Names this argument matches. | |
bool | m_isPositional |
True if used as positional argument. | |
std::string | m_description |
Description or help text of argument. | |
unsigned int | m_min = 1 |
Minimum number of occurrences if argument is set. | |
unsigned int | m_max = 1 |
Maximum number of occurrences. More... | |
std::shared_ptr< unsigned int > | m_count |
Actual counted number of occurrences. | |
ArgumentCheckFunc | m_checkFunc = nullptr |
Callback for check. | |
![]() | |
bool | m_required = false |
True if the argument has to be set. | |
Base class for arguments that hold a typed value.
The class can optionally be set to store multiple values in a vector. Template parameter T indicates the type of the value to store. Template parameter multi indicates if multiple values should be stored. Defaults to false. Note that if multi is false, but the argument can be set multiple times, the value is overwritten each time. Note that this class cannot be used directly, a derived class is to be used.
|
inlineprotected |
Create a TypedArgument with given description and storage pointer.
Values will be stored in the variable pointed to.
description | Description of the argument (used in help text) |
storage | Pointer to storage variable |
|
inlineprotected |
Create a TypedArgument with given description and storage pointer, aliased to the given flag.
Values will be stored in the variable pointed to.
description | Description of the argument (used in help text) |
flag | Flag identifier of this argument |
storage | Pointer to storage variable |
|
inlineprotected |
Create a TypedArgument with given description and storage pointer, aliased to the given name.
Values will be stored in the variable pointed to.
description | Description of the argument (used in help text) |
name | Name identifier of this argument |
storage | Pointer to storage variable |
|
inlineprotected |
Create a TypedArgument with given description and storage pointer, aliased to the given flag and name.
Values will be stored in the variable pointed to.
description | Description of the argument (used in help text) |
flag | Flag identifier of this argument |
name | Name identifier of this argument |
storage | Pointer to storage variable |
|
inline |
Returns the value of this argument.