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

Namespaces

namespace  detail
 
namespace  enums
 
namespace  FailureMessage
 

Classes

class  App
 Creates a command line program, with very few defaults. More...
 
class  ArgumentMismatch
 Thrown when the wrong number of arguments has been received. More...
 
class  AsNumberWithUnit
 
class  AsSizeValue
 
class  BadNameString
 Thrown on construction of a bad name. More...
 
class  Bound
 Produce a bounded range (factory). Min and max are inclusive. More...
 
class  CallForAllHelp
 Usually something like –help-all on command line. More...
 
class  CallForHelp
 -h or –help on command line More...
 
class  CallForVersion
 -v or –version on command line More...
 
class  CheckedTransformer
 translate named items to other or a value set 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  ConfigError
 Thrown when extra values are found in an INI file. More...
 
class  ConfigINI
 ConfigINI generates a "standard" INI compliant output. More...
 
struct  ConfigItem
 Holds values to load into Options. More...
 
class  ConstructionError
 Construction errors (not in parsing) More...
 
class  ConversionError
 Thrown when conversion call back fails, such as when an int fails to coerce to a string. More...
 
class  CustomValidator
 Class wrapping some of the accessors of Validator. More...
 
class  Error
 All errors derive from this one. More...
 
class  ExcludesError
 Thrown when an excludes option is present. More...
 
class  ExtrasError
 Thrown when too many positionals or options are found. More...
 
class  FileError
 Thrown when parsing an INI file and it is missing. More...
 
class  Formatter
 
class  FormatterBase
 
class  FormatterLambda
 This is a specialty override for lambda functions. More...
 
class  HorribleError
 
class  IncorrectConstruction
 Thrown when an option is set to conflicting values (non-vector and multi args, for example) More...
 
class  InvalidError
 Thrown when validation fails before parsing. 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_copyable_ptr
 Check to see if something is copyable pointer. More...
 
struct  is_shared_ptr
 Check to see if something is 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_shared_ptr< std::shared_ptr< T > >
 Check to see if something is a shared pointer (True if really a shared pointer) More...
 
class  IsMember
 Verify items are in a set. 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...
 
struct  make_void
 A copy of std::void_t from C++17 (helper for C++11 and C++14) More...
 
class  Option
 
class  Option_group
 Extension of App to better manage groups of options. More...
 
class  OptionAlreadyAdded
 Thrown when an option already exists. More...
 
class  OptionBase
 
class  OptionDefaults
 
class  OptionNotFound
 Thrown when counting a non-existent option. More...
 
class  ParseError
 Anything that can error in Parse. More...
 
class  Range
 Produce a range (factory). Min and max are inclusive. More...
 
class  RequiredError
 Thrown when a required option is missing. More...
 
class  RequiresError
 Thrown when a requires option is missing. More...
 
class  RuntimeError
 Does not output a diagnostic in CLI11_PARSE, but allows main() to return with a specific error code. More...
 
class  Success
 This is a successful completion on parsing, supposed to exit. More...
 
class  Transformer
 Translate named items to other or a value set. More...
 
class  TypeValidator
 Validate the input as a particular type. More...
 
class  ValidationError
 Thrown when validation of results fails. More...
 
class  Validator
 Some validators that are provided. More...
 

Typedefs

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.
 
using ConfigTOML = ConfigBase
 the default Config is the TOML file format
 
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 App_p = std::shared_ptr< App >
 

Enumerations

enum class  ExitCodes {
  Success = 0 , IncorrectConstruction = 100 , BadNameString , OptionAlreadyAdded ,
  FileError , ConversionError , ValidationError , RequiredError ,
  RequiresError , ExcludesError , ExtrasError , ConfigError ,
  InvalidError , HorribleError , OptionNotFound , ArgumentMismatch ,
  BaseClass = 127
}
 
enum class  AppFormatMode { Normal , All , Sub }
 
enum class  MultiOptionPolicy : char {
  Throw , TakeLast , TakeFirst , Join ,
  TakeAll
}
 Enumeration of the multiOption Policy selection. More...
 
enum class  config_extras_mode : char { error = 0 , ignore , ignore_all , capture }
 enumeration of modes of how to deal with extras in config files More...
 

Functions

void TriggerOn (App *trigger_app, App *app_to_enable)
 Helper function to enable one option group/subcommand when another is used.
 
void TriggerOn (App *trigger_app, std::vector< App * > apps_to_enable)
 Helper function to enable one option group/subcommand when another is used.
 
void TriggerOff (App *trigger_app, App *app_to_enable)
 Helper function to disable one option group/subcommand when another is used.
 
void TriggerOff (App *trigger_app, std::vector< App * > apps_to_enable)
 Helper function to disable one option group/subcommand when another is used.
 
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.
 
void retire_option (App *app, Option *opt)
 Helper function to mark an option as retired.
 
void retire_option (App &app, Option *opt)
 Helper function to mark an option as retired.
 
void retire_option (App *app, const std::string &option_name)
 Helper function to mark an option as retired.
 
void retire_option (App &app, const std::string &option_name)
 Helper function to mark an option as retired.
 
template<typename T >
using TransformPairs = std::vector< std::pair< std::string, T > >
 definition of the default transformation object
 
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::IPV4Validator ValidIPV4
 Check for an IP4 address.
 
const TypeValidator< double > Number ("NUMBER")
 Check for a number.
 
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), min() her is the smallest positive number.
 
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.
 

Typedef Documentation

◆ App_p

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

◆ callback_t

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

callback function definition

◆ conditional_t

template<bool B, class T , class F >
using CLI::conditional_t = typedef 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 = typedef ConfigBase

the default Config is the TOML file format

◆ enable_if_t

template<bool B, class T = void>
using CLI::enable_if_t = typedef 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 = typedef std::unique_ptr<Option>

◆ results_t

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

◆ TransformPairs

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

definition of the default transformation object

◆ void_t

template<typename... Ts>
using CLI::void_t = typedef 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
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.

◆ config_extras_mode

enum class CLI::config_extras_mode : char
strong

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

Enumerator
error 
ignore 
ignore_all 
capture 

◆ ExitCodes

enum class CLI::ExitCodes
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

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.

Here is the call graph for this function:

◆ 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.

Here is the call graph for this function:

◆ deprecate_option() [3/3]

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

Helper function to mark an option as deprecated.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ignore_case()

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

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

Here is the call graph for this function:
Here is the caller graph for this function:

◆ 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.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ignore_underscore()

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

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

Here is the call graph for this function:
Here is the caller graph for this function:

◆ retire_option() [1/4]

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

Helper function to mark an option as retired.

Here is the call graph for this function:

◆ retire_option() [2/4]

void CLI::retire_option ( App app,
Option opt 
)
inline

Helper function to mark an option as retired.

Here is the call graph for this function:

◆ retire_option() [3/4]

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

Helper function to mark an option as retired.

Here is the call graph for this function:

◆ retire_option() [4/4]

void CLI::retire_option ( App app,
Option opt 
)
inline

Helper function to mark an option as retired.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TriggerOff() [1/2]

void CLI::TriggerOff ( App trigger_app,
App app_to_enable 
)
inline

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

Here is the call graph for this function:

◆ TriggerOff() [2/2]

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

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

Here is the call graph for this function:

◆ TriggerOn() [1/2]

void CLI::TriggerOn ( App trigger_app,
App app_to_enable 
)
inline

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

Here is the call graph for this function:

◆ TriggerOn() [2/2]

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

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

Here is the call graph for this function:

Variable Documentation

◆ 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), min() her is the smallest positive number.

◆ ValidIPV4

const detail::IPV4Validator CLI::ValidIPV4

Check for an IP4 address.