Functor definition for seqan3::enumeration_names. More...
#include <seqan3/argument_parser/auxiliary.hpp>
Public Types | |
using | s_option_t = std::conditional_t< std::is_nothrow_default_constructible_v< std::remove_cvref_t< option_t > > &&seqan3::is_constexpr_default_constructible_v< std::remove_cvref_t< option_t > >, std::remove_cvref_t< option_t >, std::type_identity< option_t > > |
option_t with cvref removed and possibly wrapped in std::type_identity. | |
Public Member Functions | |
template<typename dummy = int> | |
auto | operator() () const |
Operator definition. | |
Static Public Member Functions | |
template<typename t , typename ... arg_ts> | |
static constexpr decltype(auto) | impl (seqan3::detail::priority_tag< 0 >, [[maybe_unused]] t &&v, [[maybe_unused]] arg_ts &&... args) noexcept(noexcept((enumeration_names(v)))) requires requires(seqan3 |
A customisation point overload. | |
template<typename t , typename ... arg_ts> | |
static constexpr decltype(auto) | impl (seqan3::detail::priority_tag< 1 >, [[maybe_unused]] t &&v, [[maybe_unused]] arg_ts &&... args) noexcept(noexcept((deferred_type_t< seqan3::custom::argument_parsing< option_t >, decltype(v)>::enumeration_names))) requires requires(seqan3 |
A customisation point overload. | |
Functor definition for seqan3::enumeration_names.
We need a class template here because we need the original option_t next to s_option_t that may be wrapped std::type_identity to be default constructible. We need option_t to be default constructible because the respective CPO should be callable without a function parameter.