Loading...
Searching...
No Matches
CLI Namespace Reference

## Namespaces

namespace | detail
namespace | FailureMessage
namespace | enums
namespace | adl_detail

## Classes

class | App
| Creates a command line program, with very few defaults. More...
class | Option_group
| Extension of App to better manage groups of options. More...
struct | ConfigItem
| Holds values to load into Options. More...
class | Config
| This class provides a converter for configuration files. More...
class | ConfigBase
| This converter works with INI/TOML files; to write INI files use ConfigINI. More...
class | ConfigINI
| ConfigINI generates a "standard" INI compliant output. More...
class | Error
| All errors derive from this one. More...
class | ConstructionError
| Construction errors (not in parsing). More...
class | IncorrectConstruction
| Thrown when an option is set to conflicting values (non-vector and multi args, for example). More...
class | BadNameString
| Thrown on construction of a bad name. More...
class | OptionAlreadyAdded
| Thrown when an option already exists. More...
class | ParseError
| Anything that can error in Parse. More...
class | Success
| This is a successful completion on parsing, supposed to exit. More...
class | CallForHelp
| -h or –help on command line More...
class | CallForAllHelp
| Usually something like –help-all on command line. More...
class | CallForVersion
| -v or –version on command line More...
class | RuntimeError
| Does not output a diagnostic in CLI11_PARSE, but allows main() to return with a specific error code. More...
class | FileError
| Thrown when parsing an INI file and it is missing. More...
class | ConversionError
| Thrown when conversion call back fails, such as when an int fails to coerce to a string. More...
class | ValidationError
| Thrown when validation of results fails. More...
class | RequiredError
| Thrown when a required option is missing. More...
class | ArgumentMismatch
| Thrown when the wrong number of arguments has been received. More...
class | RequiresError
| Thrown when a requires option is missing. More...
class | ExcludesError
| Thrown when an excludes option is present. More...
class | ExtrasError
| Thrown when too many positionals or options are found. More...
class | ConfigError
| Thrown when extra values are found in an INI file. More...
class | InvalidError
| Thrown when validation fails before parsing. More...
class | HorribleError
class | OptionNotFound
| Thrown when counting a nonexistent option. More...
class | TypeValidator
| Validate the input as a particular type. More...
class | Bound
| Produce a bounded range (factory). Min and max are inclusive. More...
class | IsMember
| Verify items are in a set. More...
class | Transformer
| Translate named items to other or a value set. More...
class | CheckedTransformer
| translate named items to other or a value set More...
class | AsNumberWithUnit
class | AsSizeValue
class | FormatterBase
class | FormatterLambda
| This is a specialty override for lambda functions. More...
class | Formatter
class | OptionBase
class | OptionDefaults
class | Option
class | Timer
| This is a simple timer with pretty printing. Creating the timer starts counting. More...
class | AutoTimer
| This class prints out the time upon destruction. More...
struct | make_void
| A copy of std::void_t from C++17 (helper for C++11 and C++14). More...
struct | is_bool
| Check to see if something is bool (fail check by default). More...
struct | is_bool< bool >
| Check to see if something is bool (true if actually a bool). More...
struct | is_shared_ptr
| Check to see if something is a shared pointer. More...
struct | is_shared_ptr< std::shared_ptr< T > >
| Check to see if something is a shared pointer (True if really a shared pointer). More...
struct | is_shared_ptr< const std::shared_ptr< T > >
| Check to see if something is a shared pointer (True if really a shared pointer). More...
struct | is_copyable_ptr
| Check to see if something is copyable pointer. More...
struct | IsMemberType
| This can be specialized to override the type deduction for IsMember. More...
struct | IsMemberType< const char * >
| The main custom type needed here is const char * should be a string. More...
class | Validator
| Some validators that are provided. More...
class | FileOnDefaultPath
class | Range
| Produce a range (factory). Min and max are inclusive. More...

## Typedefs

using | App_p = std::shared_ptr<App>
using | ConfigTOML = ConfigBase
| the default Config is the TOML file format
template<typename T>
using | TransformPairs = std::vector<std::pair<std::string, T>>
| definition of the default transformation object
using | results_t = std::vector<std::string>
using | callback_t = std::function<bool(const results_t &)>
| callback function definition
using | Option_p = std::unique_ptr<Option>
using | Validator_p = std::shared_ptr<Validator>
template<bool B, class T = void>
using | enable_if_t = typename std::enable_if<B, T>::type
template<typename... Ts>
using | void_t = typename make_void<Ts...>::type
| A copy of std::void_t from C++17 - same reasoning as enable_if_t, it does not hurt to redefine.
template<bool B, class T, class F>
using | conditional_t = typename std::conditional<B, T, F>::type
| A copy of std::conditional_t from C++14 - same reasoning as enable_if_t, it does not hurt to redefine.

## Enumerations

enum class | config_extras_mode : std::uint8_t { error = 0 , ignore , ignore_all , capture }
| enumeration of modes of how to deal with extras in config files More...
enum class | ExitCodes : int { Success = 0 , IncorrectConstruction = 100 , BadNameString , OptionAlreadyAdded , FileError , ConversionError , ValidationError , RequiredError , RequiresError , ExcludesError , ExtrasError , ConfigError , InvalidError , HorribleError , OptionNotFound , ArgumentMismatch , BaseClass = 127 }
enum class | AppFormatMode : std::uint8_t { Normal , All , Sub }
enum class | MultiOptionPolicy : char { Throw , TakeLast , TakeFirst , Join , TakeAll , Sum , Reverse }
| Enumeration of the multiOption Policy selection. More...
enum class | CallbackPriority : std::uint8_t { FirstPreHelp = 0 , First = 1 , PreRequirementsCheckPreHelp = 2 , PreRequirementsCheck = 3 , NormalPreHelp = 4 , Normal = 5 , LastPreHelp = 6 , Last = 7 }
| enumeration for the callback priority More...

## Functions

CLI11_INLINE void | TriggerOn (App *trigger_app, App *app_to_enable)
| Helper function to enable one option group/subcommand when another is used.
CLI11_INLINE void | TriggerOn (App *trigger_app, std::vector< App * > apps_to_enable)
| Helper function to enable one option group/subcommand when another is used.
CLI11_INLINE void | TriggerOff (App *trigger_app, App *app_to_enable)
| Helper function to disable one option group/subcommand when another is used.
CLI11_INLINE void | TriggerOff (App *trigger_app, std::vector< App * > apps_to_enable)
| Helper function to disable one option group/subcommand when another is used.
CLI11_INLINE void | deprecate_option (Option *opt, const std::string &replacement="")
| Helper function to mark an option as deprecated.
void | deprecate_option (App *app, const std::string &option_name, const std::string &replacement="")
| Helper function to mark an option as deprecated.
void | deprecate_option (App &app, const std::string &option_name, const std::string &replacement="")
| Helper function to mark an option as deprecated.
CLI11_INLINE void | retire_option (App *app, Option *opt)
| Helper function to mark an option as retired.
CLI11_INLINE void | retire_option (App &app, Option *opt)
| Helper function to mark an option as retired.
CLI11_INLINE void | retire_option (App *app, const std::string &option_name)
| Helper function to mark an option as retired.
CLI11_INLINE void | retire_option (App &app, const std::string &option_name)
| Helper function to mark an option as retired.
CLI11_INLINE std::string | narrow (const std::wstring &str)
| Convert a wide string to a narrow string.
CLI11_INLINE std::string | narrow (const wchar_t *str)
CLI11_INLINE std::string | narrow (const wchar_t *str, std::size_t size)
CLI11_INLINE std::wstring | widen (const std::string &str)
| Convert a narrow string to a wide string.
CLI11_INLINE std::wstring | widen (const char *str)
CLI11_INLINE std::wstring | widen (const char *str, std::size_t size)
std::string | ignore_case (std::string item)
| Helper function to allow ignore_case to be passed to IsMember or Transform.
std::string | ignore_underscore (std::string item)
| Helper function to allow ignore_underscore to be passed to IsMember or Transform.
std::string | ignore_space (std::string item)
| Helper function to allow checks to ignore spaces to be passed to IsMember or Transform.
AsNumberWithUnit::Options | operator| (const AsNumberWithUnit::Options &a, const AsNumberWithUnit::Options &b)
template<typename T, typename = typename std::enable_if<std::is_enum<T>::value>::type>
std::ostream & | operator<< (std::ostream &in, const T &item)
| Export to CLI namespace.

## Variables

const TypeValidator< double > | Number ("NUMBER")
| Check for a number.
const detail::IPV4Validator | ValidIPV4
| Check for an IP4 address.
using | CustomValidator = Validator
| Alias for Validator for custom Validator for clarity.
const detail::ExistingFileValidator | ExistingFile
| Check for existing file (returns error message if check fails).
const detail::ExistingDirectoryValidator | ExistingDirectory
| Check for an existing directory (returns error message if check fails).
const detail::ExistingPathValidator | ExistingPath
| Check for an existing path.
const detail::NonexistentPathValidator | NonexistentPath
| Check for an non-existing path.
const detail::EscapedStringTransformer | EscapedString
| convert escaped characters into their associated values
const Range | NonNegativeNumber ((std::numeric_limits< double >::max)(), "NONNEGATIVE")
| Check for a non negative number.
const Range | PositiveNumber ((std::numeric_limits< double >::min)(),(std::numeric_limits< double >::max)(), "POSITIVE")
| Check for a positive valued number (val>0.0), <double>::min here is the smallest positive number.

## Typedef Documentation

## App_p

using CLI::App_p = std::shared_ptr<App>

## callback_t

using CLI::callback_t = std::function<bool(const results_t &)>

callback function definition

## conditional_t

template<bool B, class T, class F>

using CLI::conditional_t = typename std::conditional<B, T, F>::type

A copy of std::conditional_t from C++14 - same reasoning as enable_if_t, it does not hurt to redefine.

## ConfigTOML

using CLI::ConfigTOML = ConfigBase

the default Config is the TOML file format

## CustomValidator

using CLI::CustomValidator = Validator

Alias for Validator for custom Validator for clarity.

## enable_if_t

template<bool B, class T = void>

using CLI::enable_if_t = typename std::enable_if<B, T>::type

A copy of enable_if_t from C++14, compatible with C++11.

We could check to see if C++14 is being used, but it does not hurt to redefine this (even Google does this: https://github.com/google/skia/blob/main/include/private/SkTLogic.h) It is not in the std namespace anyway, so no harm done.

## Option_p

using CLI::Option_p = std::unique_ptr<Option>

## results_t

using CLI::results_t = std::vector<std::string>

## TransformPairs

template<typename T>

using CLI::TransformPairs = std::vector<std::pair<std::string, T>>

definition of the default transformation object

## Validator_p

using CLI::Validator_p = std::shared_ptr<Validator>

## void_t

template<typename... Ts>

using CLI::void_t = typename make_void<Ts...>::type

A copy of std::void_t from C++17 - same reasoning as enable_if_t, it does not hurt to redefine.

## Enumeration Type Documentation

## AppFormatMode

enum class CLI::AppFormatMode : std::uint8_t

strong

This enum signifies the type of help requested

This is passed in by App; all user classes must accept this as the second argument.

Enumerator
Normal | The normal, detailed help.
All | A fully expanded help.
Sub | Used when printed as part of expanded subcommand.

## CallbackPriority

enum class CLI::CallbackPriority : std::uint8_t

strong

enumeration for the callback priority

Enumerator
FirstPreHelp |
First |
PreRequirementsCheckPreHelp |
PreRequirementsCheck |
NormalPreHelp |
Normal |
LastPreHelp |
Last |

## config_extras_mode

enum class CLI::config_extras_mode : std::uint8_t

strong

enumeration of modes of how to deal with extras in config files

Enumerator
error |
ignore |
ignore_all |
capture |

## ExitCodes

enum class CLI::ExitCodes : int

strong

These codes are part of every error in CLI. They can be obtained from e using e.exit_code or as a quick shortcut, int values from e.get_error_code().

Enumerator
Success |
IncorrectConstruction |
BadNameString |
OptionAlreadyAdded |
FileError |
ConversionError |
ValidationError |
RequiredError |
RequiresError |
ExcludesError |
ExtrasError |
ConfigError |
InvalidError |
HorribleError |
OptionNotFound |
ArgumentMismatch |
BaseClass |

## MultiOptionPolicy

enum class CLI::MultiOptionPolicy : char

strong

Enumeration of the multiOption Policy selection.

Enumerator
Throw | Throw an error if any extra arguments were given.
TakeLast | take only the last Expected number of arguments
TakeFirst | take only the first Expected number of arguments
Join | merge all the arguments together into a single string via the delimiter character default(' ')
TakeAll | just get all the passed argument regardless
Sum | sum all the arguments together if numerical or concatenate directly without delimiter
Reverse | take only the last Expected number of arguments in reverse order

## Function Documentation

## deprecate_option() [1/3]

void CLI::deprecate_option | ( | App & | app,
|  | const std::string & | option_name,
|  | const std::string & | replacement = "" )

inline

Helper function to mark an option as deprecated.

## deprecate_option() [2/3]

void CLI::deprecate_option | ( | App * | app,
|  | const std::string & | option_name,
|  | const std::string & | replacement = "" )

inline

Helper function to mark an option as deprecated.

## deprecate_option() [3/3]

CLI11_INLINE void CLI::deprecate_option | ( | Option * | opt,
|  | const std::string & | replacement = "" )

Helper function to mark an option as deprecated.

## ignore_case()

std::string CLI::ignore_case | ( | std::string | item | ) |

inline

Helper function to allow ignore_case to be passed to IsMember or Transform.

## ignore_space()

std::string CLI::ignore_space | ( | std::string | item | ) |

inline

Helper function to allow checks to ignore spaces to be passed to IsMember or Transform.

## ignore_underscore()

std::string CLI::ignore_underscore | ( | std::string | item | ) |

inline

Helper function to allow ignore_underscore to be passed to IsMember or Transform.

## narrow() [1/3]

CLI11_INLINE std::string CLI::narrow | ( | const std::wstring & | str | ) |

Convert a wide string to a narrow string.

## narrow() [2/3]

CLI11_INLINE std::string CLI::narrow | ( | const wchar_t * | str | ) |

## narrow() [3/3]

CLI11_INLINE std::string CLI::narrow | ( | const wchar_t * | str,
|  | std::size_t | size )

## operator<<()

template<typename T, typename = typename std::enable_if<std::is_enum<T>::value>::type>

std::ostream & CLI::enums::operator<< | ( | std::ostream & | in,
|  | const T & | item )

Export to CLI namespace.

## operator|()

AsNumberWithUnit::Options CLI::operator| | ( | const AsNumberWithUnit::Options & | a,
|  | const AsNumberWithUnit::Options & | b )

inline

## retire_option() [1/4]

CLI11_INLINE void CLI::retire_option | ( | App & | app,
|  | const std::string & | option_name )

Helper function to mark an option as retired.

## retire_option() [2/4]

CLI11_INLINE void CLI::retire_option | ( | App & | app,
|  | Option * | opt )

Helper function to mark an option as retired.

## retire_option() [3/4]

CLI11_INLINE void CLI::retire_option | ( | App * | app,
|  | const std::string & | option_name )

Helper function to mark an option as retired.

## retire_option() [4/4]

CLI11_INLINE void CLI::retire_option | ( | App * | app,
|  | Option * | opt )

Helper function to mark an option as retired.

## TriggerOff() [1/2]

CLI11_INLINE void CLI::TriggerOff | ( | App * | trigger_app,
|  | App * | app_to_enable )

Helper function to disable one option group/subcommand when another is used.

## TriggerOff() [2/2]

CLI11_INLINE void CLI::TriggerOff | ( | App * | trigger_app,
|  | std::vector< App * > | apps_to_enable )

Helper function to disable one option group/subcommand when another is used.

## TriggerOn() [1/2]

CLI11_INLINE void CLI::TriggerOn | ( | App * | trigger_app,
|  | App * | app_to_enable )

Helper function to enable one option group/subcommand when another is used.

## TriggerOn() [2/2]

CLI11_INLINE void CLI::TriggerOn | ( | App * | trigger_app,
|  | std::vector< App * > | apps_to_enable )

Helper function to enable one option group/subcommand when another is used.

## widen() [1/3]

CLI11_INLINE std::wstring CLI::widen | ( | const char * | str | ) |

## widen() [2/3]

CLI11_INLINE std::wstring CLI::widen | ( | const char * | str,
|  | std::size_t | size )

## widen() [3/3]

CLI11_INLINE std::wstring CLI::widen | ( | const std::string & | str | ) |

Convert a narrow string to a wide string.

## Variable Documentation

## EscapedString

const detail::EscapedStringTransformer CLI::EscapedString

convert escaped characters into their associated values

## ExistingDirectory

const detail::ExistingDirectoryValidator CLI::ExistingDirectory

Check for an existing directory (returns error message if check fails).

## ExistingFile

const detail::ExistingFileValidator CLI::ExistingFile

Check for existing file (returns error message if check fails).

## ExistingPath

const detail::ExistingPathValidator CLI::ExistingPath

Check for an existing path.

## NonexistentPath

const detail::NonexistentPathValidator CLI::NonexistentPath

Check for an non-existing path.

## NonNegativeNumber

const Range CLI::NonNegativeNumber((std::numeric_limits< double >::max)(), "NONNEGATIVE") | ( | (std::numeric_limits< double >::max)() | ,
|  | "NONNEGATIVE" | )

Check for a non negative number.

## Number

const TypeValidator< double > CLI::Number("NUMBER") | ( | "NUMBER" |  | ) |

Check for a number.

## PositiveNumber

const Range CLI::PositiveNumber((std::numeric_limits< double >::min)(),(std::numeric_limits< double >::max)(), "POSITIVE") | ( | (std::numeric_limits< double >::min)() | ,
|  | (std::numeric_limits< double >::max)() | ,
|  | "POSITIVE" | )

Check for a positive valued number (val>0.0), <double>::min here is the smallest positive number.

## ValidIPV4

const detail::IPV4Validator CLI::ValidIPV4

Check for an IP4 address.