Loading...
Searching...
No Matches
deferred_crtp_base.hpp
Go to the documentation of this file.
// SPDX-FileCopyrightText: 2006-2025 Knut Reinert & Freie Universität Berlin
// SPDX-FileCopyrightText: 2016-2025 Knut Reinert & MPI für molekulare Genetik
// SPDX-License-Identifier: BSD-3-Clause
#pragma once
#include <seqan3/core/platform.hpp>
namespace seqan3::detail
{
template <template <typename...> typename crtp_base, typename... args_t>
struct deferred_crtp_base
{
template <typename derived_t>
using invoke = crtp_base<derived_t, args_t...>;
};
template <template <typename, auto...> typename crtp_base, auto... args>
struct deferred_crtp_base_vargs
{
template <typename derived_t>
using invoke = crtp_base<derived_t, args...>;
};
template <typename deferred_crtp_base_t, typename derived_t>
requires requires { typename deferred_crtp_base_t::template invoke<derived_t>; }
using invoke_deferred_crtp_base = typename deferred_crtp_base_t::template invoke<derived_t>;
} // namespace seqan3::detail
platform.hpp
Provides platform and dependency checks.
Hide me