|
Sharg 1.2.3-rc.1
The argument parser for bio-c++ tools.
|
Customization Point Object (CPO) definition for sharg::enumeration_names. More...
#include <sharg/enumeration_names.hpp>
Public Types | |
| template<typename option_type > | |
| using | option_or_type_identity |
If option_t is not std::is_nothrow_default_constructible, enumeration_names will be called with std::type_identity instead of a default constructed alphabet. | |
Public Member Functions | |
| template<typename... args_t, typename option_type = option_t> | |
| constexpr auto | operator() (args_t &&... args) const noexcept(noexcept(cpo_overload(sharg::detail::priority_tag< 1 >{}, std::forward< args_t >(args)...))) -> decltype(cpo_overload(sharg::detail::priority_tag< 1 >{}, std::forward< args_t >(args)...)) |
| SFINAE-friendly call-operator to resolve the CPO overload. | |
Constructors, destructor and assignment | |
| constexpr | enumeration_names_cpo ()=default |
| Defaulted. | |
| constexpr | enumeration_names_cpo (enumeration_names_cpo &&)=default |
| Defaulted. | |
| constexpr | enumeration_names_cpo (enumeration_names_cpo const &)=default |
| Defaulted. | |
| constexpr enumeration_names_cpo & | operator= (enumeration_names_cpo &&)=default |
| Defaulted. | |
| constexpr enumeration_names_cpo & | operator= (enumeration_names_cpo const &)=default |
Static Public Member Functions | |
| template<typename option_type = option_t> | |
| static constexpr auto | cpo_overload (sharg::detail::priority_tag< 1 >) noexcept(noexcept(sharg::custom::parsing< option_type >::enumeration_names)) -> decltype(sharg::custom::parsing< option_type >::enumeration_names) |
CPO overload (check 1 out of 2): explicit customisation via sharg::custom::parsing | |
| template<typename option_type = option_t> | |
| static constexpr auto | cpo_overload (sharg::detail::priority_tag< 0 >) noexcept(noexcept(enumeration_names(option_or_type_identity< option_type >{}))) -> decltype(enumeration_names(option_or_type_identity< option_type >{})) |
CPO overload (check 2 out of 2): argument dependent lookup (ADL), i.e. enumeration_names(option_type{}) | |
Customization Point Object (CPO) definition for sharg::enumeration_names.
| using sharg::detail::adl_only::enumeration_names_cpo< option_t >::option_or_type_identity |
If option_t is not std::is_nothrow_default_constructible, enumeration_names will be called with std::type_identity instead of a default constructed alphabet.
|
inlinestaticconstexprnoexcept |
CPO overload (check 2 out of 2): argument dependent lookup (ADL), i.e. enumeration_names(option_type{})
| option_type | The type of the option. (Needed to defer instantiation for incomplete types.) |
If the option_type is not std::is_nothrow_default_constructible, enumeration_names(std::type_identity<option_t>{}) will be called.
|
inlinestaticconstexprnoexcept |
CPO overload (check 1 out of 2): explicit customisation via sharg::custom::parsing
| option_type | The type of the option. (Needed to defer instantiation for incomplete types.) |
|
inlineconstexprnoexcept |
SFINAE-friendly call-operator to resolve the CPO overload.
This operator decides which cpo_overload implementation to use. It will start with the highest priority, in this case sharg::detail::priority_tag<1>. If this is not well-defined, the base class of the priority_tag is checked (sharg::detail::priority_tag<0>). If there are multiple cpo_overload overloads, the priority_tag decides the order of resolution, the highest number is tried first.
If any matching overload is found, this operator perfectly forwards the result and noexcept-property of the cpo_overload.
|
constexprdefault |
Defaulted.