SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
|
An invocable wrapper that defers the instantiation of a crtp_base class. More...
#include <seqan3/core/detail/deferred_crtp_base.hpp>
Public Types | |
template<typename derived_t > | |
using | invoke = crtp_base< derived_t, args... > |
Invokes the deferred crtp_base with the corresponding derived type. | |
An invocable wrapper that defers the instantiation of a crtp_base class.
crtp_base | The crtp base class to be deferred. Must be a template template parameter. |
args | A non-type template parameter pack used to augment the crtp_base class. |
This transformation trait wrapper allows to defer the template instantiation of crtp-base classes. This can be useful if the crtp_base class should be augmented with traits or other templates, especially when using variadic crtp_bases. The help function seqan3::detail::invoke_deferred_crtp_base can be used to instantiate the deferred crtp base with the respective derived type. This class wrapper can only be used to augment a crtp-base class with non-type arguments. See seqan3::detail::deferred_crtp_base for a version that accepts type template parameters.
The following snippet demonstrates the use of the deferred crtp base class instantiation.
using seqan3::detail::deferred_crtp_base_vargs< crtp_base, args >::invoke = crtp_base<derived_t, args...> |
Invokes the deferred crtp_base with the corresponding derived type.
derived_t | The derived type to instantiate the crtp_base with. |