Helper utilities for defining customisation point objects (CPOs). More...
#include <seqan3/core/platform.hpp>
Include dependency graph for customisation_point.hpp:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Namespaces | |
| namespace | seqan3 |
| The main SeqAn3 namespace. | |
Macros | |
| #define | SEQAN3_CPO_OVERLOAD(...) cpo_overload(__VA_ARGS__) SEQAN3_CPO_OVERLOAD_BODY |
| A macro that helps to define a seqan3::detail::customisation_point_object. More... | |
| #define | SEQAN3_CPO_OVERLOAD_BODY(...) |
| A macro helper for SEQAN3_CPO_OVERLOAD. More... | |
Helper utilities for defining customisation point objects (CPOs).
| #define SEQAN3_CPO_OVERLOAD | ( | ... | ) | cpo_overload(__VA_ARGS__) SEQAN3_CPO_OVERLOAD_BODY |
A macro that helps to define a seqan3::detail::customisation_point_object.
DEV
Expands to a function definition with the name cpo_overload.
It puts the given expression via SEQAN3_CPO_OVERLOAD_BODY as a single return statement in the function body, the noexcept declaration and requires declaration.
expands to something similar to
| #define SEQAN3_CPO_OVERLOAD_BODY | ( | ... | ) |
A macro helper for SEQAN3_CPO_OVERLOAD.
DEV
Please note that in order to allow a semicolon at the end when using this macro, i.e.
we need some expression at the end of the macro that can have a semicolon appended. We chose static_assert(true) for that reason.