capydi
Loading...
Searching...
No Matches
PackConcat.hpp
Go to the documentation of this file.
1#ifndef PACK_CONCAT_HPP_
2#define PACK_CONCAT_HPP_
3
5
6namespace capy::meta::legacy
7{
8
9template<typename Pack1, typename Pack2>
11
12template<typename... Pack1Elements, typename... Pack2Elements>
14 Pack<Pack1Elements...>,
15 Pack<Pack2Elements...>
16>
17{
18 using type = Pack<Pack1Elements..., Pack2Elements...>;
19};
20
21template<typename Pack1, typename Pack2>
23
24template<typename... Packs>
26
27template<typename HeadPack, typename... TailPacks>
28struct PacksMultyConcat<HeadPack, TailPacks...>
29{
31 HeadPack,
32 typename PacksMultyConcat<TailPacks...>::type
33 >;
34};
35
36template<>
38{
39 using type = Pack<>;
40};
41
42template<typename... Packs>
43using packs_multy_concat_t = typename PacksMultyConcat<Packs...>::type;
44
45}
46
47#endif // !PACK_CONCAT_HPP_
Compile-time type pack utilities and metaprogramming foundations.
Definition Append.hpp:7
typename PackConcat< Pack1, Pack2 >::type pack_concat_t
Definition PackConcat.hpp:22
typename PacksMultyConcat< Packs... >::type packs_multy_concat_t
Definition PackConcat.hpp:43
A compile-time heterogeneous type list.
Definition Pack.hpp:70
Pack< Pack1Elements..., Pack2Elements... > type
Definition PackConcat.hpp:18
Definition PackConcat.hpp:10
pack_concat_t< HeadPack, typename PacksMultyConcat< TailPacks... >::type > type
Definition PackConcat.hpp:30
Pack<> type
Definition PackConcat.hpp:39
Definition PackConcat.hpp:25