|
| struct | CLI::make_void< Ts > |
| | A copy of std::void_t from C++17 (helper for C++11 and C++14) More...
|
| |
| struct | CLI::is_vector< T > |
| | Check to see if something is a vector (fail check by default) More...
|
| |
| struct | CLI::is_vector< std::vector< T, A > > |
| | Check to see if something is a vector (true if actually a vector) More...
|
| |
| struct | CLI::is_vector< const std::vector< T, A > > |
| | Check to see if something is a vector (true if actually a const vector) More...
|
| |
| struct | CLI::is_bool< T > |
| | Check to see if something is bool (fail check by default) More...
|
| |
| struct | CLI::is_bool< bool > |
| | Check to see if something is bool (true if actually a bool) More...
|
| |
| struct | CLI::is_shared_ptr< T > |
| | Check to see if something is a shared pointer. More...
|
| |
| struct | CLI::is_shared_ptr< std::shared_ptr< T > > |
| | Check to see if something is a shared pointer (True if really a shared pointer) More...
|
| |
| struct | CLI::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 | CLI::is_copyable_ptr< T > |
| | Check to see if something is copyable pointer. More...
|
| |
| struct | CLI::IsMemberType< T > |
| | This can be specialized to override the type deduction for IsMember. More...
|
| |
| struct | CLI::IsMemberType< const char * > |
| | The main custom type needed here is const char * should be a string. More...
|
| |
| struct | CLI::detail::element_type< T, Enable > |
| | not a pointer More...
|
| |
| struct | CLI::detail::element_type< T, typename std::enable_if< is_copyable_ptr< T >::value >::type > |
| |
| struct | CLI::detail::element_value_type< T > |
| |
| struct | CLI::detail::pair_adaptor< T, _ > |
| | Adaptor for set-like structure: This just wraps a normal container in a few utilities that do almost nothing. More...
|
| |
| struct | CLI::detail::pair_adaptor< T, conditional_t< false, void_t< typename T::value_type::first_type, typename T::value_type::second_type >, void > > |
| |
| class | CLI::detail::is_direct_constructible< T, C > |
| |
| class | CLI::detail::is_ostreamable< T, S > |
| |
| class | CLI::detail::is_istreamable< T, S > |
| | Check for input streamability. More...
|
| |
| class | CLI::detail::is_tuple_like< S > |
| |
| struct | CLI::detail::type_count< T, Enable > |
| | This will only trigger for actual void type. More...
|
| |
| struct | CLI::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. More...
|
| |
| struct | CLI::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. More...
|
| |
| struct | CLI::detail::type_count< T, typename std::enable_if< is_vector< T >::value >::type > |
| | Type size of types that look like a vector. More...
|
| |
| struct | CLI::detail::expected_count< T, Enable > |
| | This will only trigger for actual void type. More...
|
| |
| struct | CLI::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. More...
|
| |
| struct | CLI::detail::expected_count< T, typename std::enable_if< is_vector< T >::value >::type > |
| | number of expected items in a vector More...
|
| |
| struct | CLI::detail::classify_object< T, Enable > |
| | some type that is not otherwise recognized More...
|
| |
| struct | CLI::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. More...
|
| |
| struct | CLI::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. More...
|
| |
| struct | CLI::detail::classify_object< T, typename std::enable_if< is_bool< T >::value >::type > |
| | Boolean values. More...
|
| |
| struct | CLI::detail::classify_object< T, typename std::enable_if< std::is_floating_point< T >::value >::type > |
| | Floats. More...
|
| |
| struct | CLI::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. More...
|
| |
| struct | CLI::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. More...
|
| |
| struct | CLI::detail::classify_object< T, typename std::enable_if< std::is_enum< T >::value >::type > |
| | Enumerations. More...
|
| |
| struct | CLI::detail::uncommon_type< T > |
| |
| struct | CLI::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. More...
|
| |
| struct | CLI::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. More...
|
| |
| struct | CLI::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. More...
|
| |
| struct | CLI::detail::classify_object< T, Enable >::type > |
| | Tuple type. More...
|
| |
| struct | CLI::detail::classify_object< T, typename std::enable_if< is_vector< T >::value >::type > |
| | Vector type. More...
|
| |
|
| template<typename T , enable_if_t< is_istreamable< T >::value, detail::enabler > = detail::dummy> |
| bool | CLI::detail::from_stream (const std::string &istring, T &obj) |
| | Templated operation to get a value from a stream. More...
|
| |
| template<typename T , enable_if_t< std::is_convertible< T, std::string >::value, detail::enabler > = detail::dummy> |
| auto | CLI::detail::to_string (T &&value) -> decltype(std::forward< T >(value)) |
| | Convert an object to a string (directly forward if this can become a string) More...
|
| |
| template<typename T , enable_if_t< std::is_constructible< std::string, T >::value &&!std::is_convertible< T, std::string >::value, detail::enabler > = detail::dummy> |
| std::string | CLI::detail::to_string (const T &value) |
| | Construct a string from the object. More...
|
| |
| template<typename T , enable_if_t<!std::is_convertible< std::string, T >::value &&!std::is_constructible< std::string, T >::value &&is_ostreamable< T >::value, detail::enabler > = detail::dummy> |
| std::string | CLI::detail::to_string (T &&value) |
| | Convert an object to a string (streaming must be supported for that type) More...
|
| |
| template<typename T1 , typename T2 , typename T , enable_if_t< std::is_same< T1, T2 >::value, detail::enabler > = detail::dummy> |
| auto | CLI::detail::checked_to_string (T &&value) -> decltype(to_string(std::forward< T >(value))) |
| | special template overload More...
|
| |
| template<typename T1 , typename T2 , typename T , enable_if_t<!std::is_same< T1, T2 >::value, detail::enabler > = detail::dummy> |
| std::string | CLI::detail::checked_to_string (T &&) |
| | special template overload More...
|
| |
| template<typename T , enable_if_t< std::is_arithmetic< T >::value, detail::enabler > = detail::dummy> |
| std::string | CLI::detail::value_string (const T &value) |
| | get a string as a convertible value for arithmetic types More...
|
| |
| template<typename T , enable_if_t<!std::is_enum< T >::value &&!std::is_arithmetic< T >::value, detail::enabler > = detail::dummy> |
| auto | CLI::detail::value_string (const T &value) -> decltype(to_string(value)) |
| | for other types just use the regular to_string function More...
|
| |
| template<typename T , enable_if_t< classify_object< T >::value==object_category::integral_value||classify_object< T >::value==object_category::integer_constructible, detail::enabler > = detail::dummy> |
| constexpr const char * | CLI::detail::type_name () |
| | Print name for enumeration types. More...
|
| |
| std::size_t I std::enable_if< I==type_count< T >::value, std::string >::type | CLI::detail::tuple_name () |
| |
| template<typename T , std::size_t I> |
| std::enable_if< I< type_count< T >::value, std::string >::type tuple_name() { std::string str=std::string(type_name< typename std::tuple_element< I, T >::type >))+','+tuple_name< T, I+1 >);if(str.back()==',') str.pop_back();return str;}template< typename T, enable_if_t< classify_object< T >::value==object_category::tuple_value &&type_count< T >::value >=2, detail::enabler >=detail::dummy > std::string | CLI::detail::type_name () |
| | Recursively generate the tuple type name. More...
|
| |
| template<typename T , enable_if_t< classify_object< T >::value==object_category::vector_value, detail::enabler > = detail::dummy> |
| std::string | CLI::detail::type_name () |
| | This one should not be used normally, since vector types print the internal type. More...
|
| |
| std::int64_t | CLI::detail::to_flag_value (std::string val) |
| | Convert a flag into an integer value typically binary flags. More...
|
| |
| template<typename T , enable_if_t< classify_object< T >::value==object_category::integral_value, detail::enabler > = detail::dummy> |
| bool | CLI::detail::lexical_cast (const std::string &input, T &output) |
| | Signed integers. More...
|
| |
| template<typename T , typename XC , enable_if_t< std::is_same< T, XC >::value &&(classify_object< T >::value==object_category::string_assignable||classify_object< T >::value==object_category::string_constructible), detail::enabler > = detail::dummy> |
| bool | CLI::detail::lexical_assign (const std::string &input, T &output) |
| | Assign a value through lexical cast operations. More...
|
| |
| template<typename T , typename XC , enable_if_t<!is_tuple_like< T >::value &&!is_tuple_like< XC >::value &&!is_vector< T >::value &&!is_vector< XC >::value, detail::enabler > = detail::dummy> |
| bool | CLI::detail::lexical_conversion (const std::vector< std ::string > &strings, T &output) |
| | Lexical conversion if there is only one element. More...
|
| |
| bool ::type | CLI::detail::tuple_conversion (const std::vector< std::string > &, T &) |
| |