SeqAn3
pack.hpp
Go to the documentation of this file.
1 // -----------------------------------------------------------------------------------------------------
2 // Copyright (c) 2006-2018, Knut Reinert & Freie Universität Berlin
3 // Copyright (c) 2016-2018, 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
6 // -----------------------------------------------------------------------------------------------------
7 
13 #pragma once
14 
15 #include <type_traits>
16 
17 #include <seqan3/core/platform.hpp>
18 
19 namespace seqan3::detail
20 {
21 
24 
26 template<typename target_t, typename ...pack>
27 struct type_in_pack : std::false_type {};
28 
30 template<typename target_t, typename ...pack>
31 struct type_in_pack<target_t, target_t, pack...> : std::true_type {};
32 
33 template<typename target_t, typename pack1, typename ...pack>
34 struct type_in_pack<target_t, pack1, pack...> : type_in_pack<target_t, pack...> {};
36 
39 template<typename target_t, typename ...pack>
40 inline bool constexpr type_in_pack_v = type_in_pack<target_t, pack...>::value;
41 
43 
44 } // namespace seqan3::detail
Contains platform and dependency checks.
Definition: aligned_sequence_concept.hpp:288
Provides C++20 additions to the type_traits header.