18namespace sharg::custom
56struct parsing<t &> : parsing<t>
60struct parsing<t const &> : parsing<t>
66namespace sharg::detail
85namespace sharg::detail::adl_only
95template <
typename option_t>
96struct enumeration_names_cpo
101 constexpr enumeration_names_cpo() =
default;
102 constexpr enumeration_names_cpo(enumeration_names_cpo &&) =
default;
103 constexpr enumeration_names_cpo(enumeration_names_cpo
const &) =
default;
104 constexpr enumeration_names_cpo & operator=(enumeration_names_cpo &&) =
default;
105 constexpr enumeration_names_cpo & operator=(enumeration_names_cpo
const &) =
default;
111 template <
typename option_type>
112 using option_or_type_identity =
120 template <
typename option_type = option_t>
121 static constexpr auto cpo_overload(sharg::detail::priority_tag<1>)
noexcept(
137 template <
typename option_type = option_t>
138 static constexpr auto cpo_overload(sharg::detail::priority_tag<0>)
noexcept(
139 noexcept(enumeration_names(option_or_type_identity<option_type>{})))
140 ->
decltype(enumeration_names(option_or_type_identity<option_type>{}))
142 return enumeration_names(option_or_type_identity<option_type>{});
156 template <
typename... args_t,
typename option_type = option_t >
157 constexpr auto operator()(args_t &&... args)
const
158 noexcept(
noexcept(cpo_overload(sharg::detail::priority_tag<1>{},
std::forward<args_t>(args)...)))
212template <
typename option_type>
213 requires requires { { detail::adl_only::enumeration_names_cpo<option_type>{}() }; }
234template <
typename option_type>
237 { sharg::enumeration_names<option_type> };
250template <
typename option_type>
260 return s <<
"<UNKNOWN_VALUE>";
Checks whether the free function sharg::enumeration_names can be called on the type.
Definition enumeration_names.hpp:235
auto const enumeration_names
Return a conversion map from std::string_view to option_type.
Definition enumeration_names.hpp:214
A type that can be specialised to provide customisation point implementations for the sharg::parser s...
Definition enumeration_names.hpp:48