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>
39struct deferred_crtp_base
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>
72struct deferred_crtp_base_vargs
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
T invoke(T... args)
Provides platform and dependency checks.
Hide me