-
Notifications
You must be signed in to change notification settings - Fork 0
/
flat_merge2.cpp
48 lines (38 loc) · 1.04 KB
/
flat_merge2.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include "flat_merge2.h"
using Input = TypeList<bool, char, short, int, double>;
struct EfficientLayoutTraits
{
template<typename T>
static constexpr auto value(Tag<T>){ return sizeof(T); }
static constexpr std::less<> compare{};
} traits;
static_assert(
std::is_same<
decltype(merge(traits, TypeList{}, TypeList{})),
TypeList<> >::value,
"");
static_assert(
std::is_same<
decltype(merge(traits, TypeList{}, TypeList<int>{})),
TypeList<int> >::value,
"");
static_assert(
std::is_same<
decltype(merge(traits, TypeList<char>{}, TypeList<int>{})),
TypeList<char, int> >::value,
"");
static_assert(
std::is_same<
decltype(
merge(
traits,
TypeList<bool, short, int>{},
TypeList<char, short, int>{})),
TypeList<char, bool, short, short, int, int> >::value,
"");
// static_assert(
// std::is_same_v<
// decltype(mergeSort(traits, Input{})),
// Input>,
// "");
int main(){}