17namespace seqan3::detail
44#if SEQAN3_DOXYGEN_ONLY(1)0
62#define SEQAN3_CPO_OVERLOAD_BODY(...) noexcept(auto) { return __VA_ARGS__; }
64#define SEQAN3_CPO_OVERLOAD_BODY(...) \
65 noexcept(noexcept(__VA_ARGS__)) \
66 -> decltype(__VA_ARGS__) \
67 { return __VA_ARGS__; } \
102#define SEQAN3_CPO_OVERLOAD(...) \
103 cpo_overload(__VA_ARGS__) \
104 SEQAN3_CPO_OVERLOAD_BODY
106namespace seqan3::detail
136template <
typename derived_t,
unsigned max_priority>
137struct customisation_point_object
143 constexpr customisation_point_object() =
default;
144 constexpr customisation_point_object(customisation_point_object &&) =
default;
145 constexpr customisation_point_object(customisation_point_object
const &) =
default;
146 constexpr customisation_point_object & operator=(customisation_point_object &&) =
default;
147 constexpr customisation_point_object & operator=(customisation_point_object
const &) =
default;
160 template <
typename ...args_t,
typename derived_type = derived_t >
161 constexpr auto operator()(args_t && ...args)
const
164 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