81 template <
typename option_t>
82 struct enumeration_names_fn
86 seqan3::is_constexpr_default_constructible_v<remove_cvref_t<option_t>>,
94 template <
typename dummy =
int>
98 { impl(priority_tag<1>{}, s_option_t{}, dummy{}) };
103 auto operator()()
const 105 return impl(priority_tag<1>{}, s_option_t{});
150 template <
typename option_type>
152 requires requires { { detail::adl_only::enumeration_names_fn<option_type>{}() }; }
167 template <
typename option_type>
171 { seqan3::enumeration_names<option_type> };
185 template <
typename option_type>
205 template <
typename char_t,
typename option_type>
211 for (
auto & [key, value] : enumeration_names<option_type>)
217 return s <<
"<UNKNOWN_VALUE>";
296 unsigned man_page_section{1};
Checks whether the the type can be used in an add_(positional_)option call on the argument parser...
Definition: auxiliary.hpp:243
#define SEQAN3_CPO_IMPL(PRIO, TERM)
A macro that helps defining the overload set of a customisation point.
Definition: customisation_point.hpp:45
A type that can be specialised to provide customisation point implementations for the seqan3::argumen...
Definition: auxiliary.hpp:49
auto const enumeration_names
Return a conversion map from std::string_view to option_type.
Definition: auxiliary.hpp:154
Provides seqan3::debug_stream and related types.
The main SeqAn3 namespace.
Definition: concept.hpp:41
Helper utilities for defining customisation point objects.
Definition: auxiliary.hpp:239
Provides C++20 additions to the type_traits header.
Provides various type traits on generic types.
option_spec
Used to further specify argument_parser options/flags.
Definition: auxiliary.hpp:231
Definition: auxiliary.hpp:234
A namespace for third party and standard library specialisations of SeqAn customisation points...
Definition: char.hpp:42
A "pretty printer" for most SeqAn data structures and related types.
Definition: debug_stream_type.hpp:70
Checks whether the free function seqan3::enumeration_names can be called on the type.
The concept std::same_as<T, U> is satisfied if and only if T and U denote the same type...
The default were no checking or special displaying is happening.
Definition: auxiliary.hpp:233
The identity transformation (a transformation_trait that returns the input).
Definition: type_traits:31