SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
Loading...
Searching...
No Matches
deferred_crtp_base.hpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2006-2024 Knut Reinert & Freie Universität Berlin
2// SPDX-FileCopyrightText: 2016-2024 Knut Reinert & MPI für molekulare Genetik
3// SPDX-License-Identifier: BSD-3-Clause
4
10#pragma once
11
13
14namespace seqan3::detail
15{
16
38template <template <typename...> typename crtp_base, typename... args_t>
40{
44 template <typename derived_t>
45 using invoke = crtp_base<derived_t, args_t...>;
46};
47
71template <template <typename, auto...> typename crtp_base, auto... args>
73{
77 template <typename derived_t>
78 using invoke = crtp_base<derived_t, args...>;
79};
80
92template <typename deferred_crtp_base_t, typename derived_t>
93 requires requires { typename deferred_crtp_base_t::template invoke<derived_t>; }
94using invoke_deferred_crtp_base = typename deferred_crtp_base_t::template invoke<derived_t>;
95
96} // namespace seqan3::detail
typename deferred_crtp_base_t::template invoke< derived_t > invoke_deferred_crtp_base
Template alias to instantiate the deferred crtp base with the derived class.
Definition deferred_crtp_base.hpp:94
The internal SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26
Provides platform and dependency checks.
An invocable wrapper that defers the instantiation of a crtp_base class.
Definition deferred_crtp_base.hpp:73
crtp_base< derived_t, args... > invoke
Invokes the deferred crtp_base with the corresponding derived type.
Definition deferred_crtp_base.hpp:78
An invocable wrapper that defers the instantiation of a crtp_base class.
Definition deferred_crtp_base.hpp:40
crtp_base< derived_t, args_t... > invoke
Invokes the deferred crtp_base with the corresponding derived type.
Definition deferred_crtp_base.hpp:45
Hide me