CLI11  1.9.1
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 12345]
 CCLI::AppCreates a command line program, with very few defaults
 CCLI::Option_groupExtension of App to better manage groups of options
 CCLI::detail::AppFriendThis class is simply to allow tests access to App's protected functions
 CCLI::detail::classify_object< T, Enable >Some type that is not otherwise recognized
 CCLI::detail::classify_object< T, typename std::enable_if< is_bool< T >::value >::type >Boolean values
 CCLI::detail::classify_object< T, typename std::enable_if< is_vector< T >::value >::type >Vector type
 CCLI::detail::classify_object< T, typename std::enable_if< std::is_enum< T >::value >::type >Enumerations
 CCLI::detail::classify_object< T, typename std::enable_if< std::is_floating_point< T >::value >::type >Floats
 CCLI::detail::classify_object< T, typename std::enable_if< std::is_integral< T >::value &&std::is_signed< T >::value &&!is_bool< T >::value &&!std::is_enum< T >::value >::type >Set of overloads to classify an object according to type
 CCLI::detail::classify_object< T, typename std::enable_if< std::is_integral< T >::value &&std::is_unsigned< T >::value &&!is_bool< T >::value >::type >Unsigned integers
 CCLI::detail::classify_object< T, typename std::enable_if< uncommon_type< T >::value &&type_count< T >::value==1 &&!is_direct_constructible< T, double >::value &&is_direct_constructible< T, int >::value >::type >Assignable from int
 CCLI::detail::classify_object< T, typename std::enable_if< uncommon_type< T >::value &&type_count< T >::value==1 &&is_direct_constructible< T, double >::value &&!is_direct_constructible< T, int >::value >::type >Assignable from double
 CCLI::detail::classify_object< T, typename std::enable_if< uncommon_type< T >::value &&type_count< T >::value==1 &&is_direct_constructible< T, double >::value &&is_direct_constructible< T, int >::value >::type >Assignable from double or int
 CCLI::detail::classify_object< T, typename std::enable_if<!std::is_floating_point< T >::value &&!std::is_integral< T >::value &&!std::is_assignable< T &, std::string >::value &&std::is_constructible< T, std::string >::value &&!is_vector< T >::value >::type >String and similar constructible and copy assignment
 CCLI::detail::classify_object< T, typename std::enable_if<!std::is_floating_point< T >::value &&!std::is_integral< T >::value &&std::is_assignable< T &, std::string >::value &&!is_vector< T >::value >::type >String and similar direct assignment
 CCLI::ConfigThis class provides a converter for configuration files
 CCLI::ConfigBaseThis converter works with INI/TOML files; to write proper TOML files use ConfigTOML
 CCLI::ConfigTOMLConfigTOML generates a TOML compliant output
 CCLI::ConfigItemHolds values to load into Options
 CCLI::detail::element_type< T, Enable >Not a pointer
 CCLI::detail::element_type< T, typename std::enable_if< is_copyable_ptr< T >::value >::type >
 CCLI::detail::element_value_type< T >
 Cstd::exceptionSTL class
 Cstd::runtime_errorSTL class
 CCLI::ErrorAll errors derive from this one
 CCLI::ConstructionErrorConstruction errors (not in parsing)
 CCLI::OptionNotFoundThrown when counting a non-existent option
 CCLI::ParseErrorAnything that can error in Parse
 CCLI::detail::expected_count< T, Enable >This will only trigger for actual void type
 CCLI::detail::expected_count< T, typename std::enable_if< is_vector< T >::value >::type >Number of expected items in a vector
 CCLI::detail::expected_count< T, typename std::enable_if<!is_vector< T >::value &&!std::is_void< T >::value >::type >For most types the number of expected items is 1
 Cfalse_type
 CCLI::detail::pair_adaptor< T, _ >Adaptor for set-like structure: This just wraps a normal container in a few utilities that do almost nothing
 CCLI::is_bool< T >Check to see if something is bool (fail check by default)
 CCLI::is_shared_ptr< T >Check to see if something is a shared pointer
 CCLI::is_vector< T >Check to see if something is a vector (fail check by default)
 CCLI::FormatterBase
 CCLI::Formatter
 CCLI::FormatterLambdaThis is a specialty override for lambda functions
 CCLI::detail::has_find< C, V >
 CCLI::is_copyable_ptr< T >Check to see if something is copyable pointer
 CCLI::detail::is_direct_constructible< T, C >
 CCLI::detail::is_istreamable< T, S >Check for input streamability
 CCLI::detail::is_ostreamable< T, S >
 CCLI::detail::is_tuple_like< S >
 CCLI::IsMemberType< T >This can be specialized to override the type deduction for IsMember
 CCLI::IsMemberType< const char * >The main custom type needed here is const char * should be a string
 CCLI::make_void< Ts >A copy of std::void_t from C++17 (helper for C++11 and C++14)
 CCLI::OptionBase< CRTP >
 CCLI::OptionBase< Option >
 CCLI::Option
 CCLI::OptionBase< OptionDefaults >
 CCLI::OptionDefaults
 CCLI::TimerThis is a simple timer with pretty printing. Creating the timer starts counting
 CCLI::AutoTimerThis class prints out the time upon destruction
 Ctrue_type
 CCLI::detail::pair_adaptor< T, conditional_t< false, void_t< typename T::value_type::first_type, typename T::value_type::second_type >, void > >
 CCLI::is_bool< bool >Check to see if something is bool (true if actually a bool)
 CCLI::is_shared_ptr< const std::shared_ptr< T > >Check to see if something is a shared pointer (True if really a shared pointer)
 CCLI::is_shared_ptr< std::shared_ptr< T > >Check to see if something is a shared pointer (True if really a shared pointer)
 CCLI::is_vector< const std::vector< T, A > >Check to see if something is a vector (true if actually a const vector)
 CCLI::is_vector< std::vector< T, A > >Check to see if something is a vector (true if actually a vector)
 CCLI::detail::classify_object< T, Enable >::type >Tuple type
 CCLI::detail::type_count< T, Enable >This will only trigger for actual void type
 CCLI::detail::type_count< T, typename std::enable_if< is_tuple_like< T >::value >::type >Set of overloads to get the type size of an object
 CCLI::detail::type_count< T, typename std::enable_if< is_vector< T >::value >::type >Type size of types that look like a vector
 CCLI::detail::type_count< T, typename std::enable_if<!is_vector< T >::value &&!is_tuple_like< T >::value &&!std::is_void< T >::value >::type >Type size for regular object types that do not look like a tuple
 CCLI::detail::uncommon_type< T >
 CCLI::ValidatorSome validators that are provided
 CCLI::AsNumberWithUnit
 CCLI::AsSizeValue
 CCLI::BoundProduce a bounded range (factory). Min and max are inclusive
 CCLI::CheckedTransformerTranslate named items to other or a value set
 CCLI::CustomValidatorClass wrapping some of the accessors of Validator
 CCLI::detail::ExistingDirectoryValidatorCheck for an existing directory (returns error message if check fails)
 CCLI::detail::ExistingFileValidatorCheck for an existing file (returns error message if check fails)
 CCLI::detail::ExistingPathValidatorCheck for an existing path
 CCLI::detail::IPV4ValidatorValidate the given string is a legal ipv4 address
 CCLI::detail::NonexistentPathValidatorCheck for an non-existing path
 CCLI::detail::NonNegativeNumberValidate the argument is a number and greater than or equal to 0
 CCLI::detail::NumberValidate the argument is a number
 CCLI::detail::PositiveNumberValidate the argument is a number and greater than 0
 CCLI::IsMemberVerify items are in a set
 CCLI::RangeProduce a range (factory). Min and max are inclusive
 CCLI::TransformerTranslate named items to other or a value set