17 namespace seqan3::detail
36 struct priority_tag<0>
44 #if SEQAN3_DOXYGEN_ONLY(1) 0
62 # define SEQAN3_CPO_OVERLOAD_BODY(...) \
68 # define SEQAN3_CPO_OVERLOAD_BODY(...) \
69 noexcept(noexcept(__VA_ARGS__))->decltype(__VA_ARGS__) \
107 #define SEQAN3_CPO_OVERLOAD(...) cpo_overload(__VA_ARGS__) SEQAN3_CPO_OVERLOAD_BODY
109 namespace seqan3::detail
139 template <
typename derived_t,
unsigned max_priority>
140 struct customisation_point_object
146 constexpr customisation_point_object() =
default;
147 constexpr customisation_point_object(customisation_point_object &&) =
default;
148 constexpr customisation_point_object(customisation_point_object
const &) =
default;
149 constexpr customisation_point_object & operator=(customisation_point_object &&) =
default;
150 constexpr customisation_point_object & operator=(customisation_point_object
const &) =
default;
163 template <
typename... args_t,
typename derived_type = derived_t >
165 derived_type::cpo_overload(priority_tag<max_priority>{}, std::forward<args_t>(args)...)
#define SEQAN3_CPO_OVERLOAD_BODY(...)
A macro helper for SEQAN3_CPO_OVERLOAD.
Definition: customisation_point.hpp:62