Sharg 1.1.2-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.