SeqAn3 3.1.0
The Modern C++ library for sequence analysis.
is_class_template_declarable.hpp
Go to the documentation of this file.
1// -----------------------------------------------------------------------------------------------------
2// Copyright (c) 2006-2021, Knut Reinert & Freie Universität Berlin
3// Copyright (c) 2016-2021, Knut Reinert & MPI für molekulare Genetik
4// This file may be used, modified and/or redistributed under the terms of the 3-clause BSD-License
5// shipped with this file and also available at: https://github.com/seqan/seqan3/blob/master/LICENSE.md
6// -----------------------------------------------------------------------------------------------------
7
13#pragma once
14
16
18
19namespace seqan3::detail
20{
21
41template <template <typename ...> typename query_t, typename ...args_t>
42struct is_class_template_declarable_with :
44 public std::false_type
46{};
47
49template <template <typename ...> typename query_t, typename ...args_t>
50requires requires { typename std::type_identity<query_t<args_t...>>::type; }
51struct is_class_template_declarable_with<query_t, args_t...> : public std::true_type
52{};
54
60template <template <typename ...> typename query_t, typename ...args_t>
61inline constexpr bool is_class_template_declarable_with_v =
62 is_class_template_declarable_with<query_t, args_t...>::value;
63
64} // namespace seqan3::detail
Provides platform and dependency checks.
The <type_traits> header from C++20's standard library.