SeqAn3  3.0.3
The Modern C++ library for sequence analysis.
seqan3::detail::adl_only::enumeration_names_fn< option_t > Struct Template Reference

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.
 

Detailed Description

template<typename option_t>
struct seqan3::detail::adl_only::enumeration_names_fn< option_t >

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.


The documentation for this struct was generated from the following file: