@@ -31,58 +31,59 @@ struct is_empty_type_list
31
31
32
32
template <> struct type_list <> {};
33
33
34
- template <typename H , typename ... T > struct type_list <H, T ...> {
35
- using head = H ;
36
- using tail = type_list<T ...>;
34
+ template <typename Head , typename ... Tail > struct type_list <Head, Tail ...> {
35
+ using head = Head ;
36
+ using tail = type_list<Tail ...>;
37
37
};
38
38
39
- template <typename H , typename ... T , typename ... T2 >
40
- struct type_list <type_list<H, T ...>, T2 ...> {
39
+ template <typename Head , typename ... Tail , typename ... Tail2 >
40
+ struct type_list <type_list<Head, Tail ...>, Tail2 ...> {
41
41
private:
42
- using remainder = tail_t <type_list<H >>;
42
+ using remainder = tail_t <type_list<Head >>;
43
43
static constexpr bool has_remainder = !is_empty_type_list<remainder>::value;
44
- using without_remainder = type_list<T ..., T2 ...>;
45
- using with_remainder = type_list<remainder, T ..., T2 ...>;
44
+ using without_remainder = type_list<Tail ..., Tail2 ...>;
45
+ using with_remainder = type_list<remainder, Tail ..., Tail2 ...>;
46
46
47
47
public:
48
- using head = head_t <type_list<H >>;
48
+ using head = head_t <type_list<Head >>;
49
49
using tail = conditional_t <has_remainder, with_remainder, without_remainder>;
50
50
};
51
51
52
52
// is_contained
53
- template <typename T, typename L >
53
+ template <typename T, typename TypeList >
54
54
struct is_contained
55
- : conditional_t <std::is_same<remove_cv_t <T>, head_t <L >>::value,
56
- std::true_type, is_contained<T, tail_t <L >>> {};
55
+ : conditional_t <std::is_same<remove_cv_t <T>, head_t <TypeList >>::value,
56
+ std::true_type, is_contained<T, tail_t <TypeList >>> {};
57
57
58
58
template <typename T>
59
59
struct is_contained <T, empty_type_list> : std::false_type {};
60
60
61
61
// value_list
62
- template <typename T, T... V > struct value_list ;
62
+ template <typename T, T... Values > struct value_list ;
63
63
64
- template <typename T, T H , T... V > struct value_list <T, H, V ...> {
65
- static constexpr T head = H ;
66
- using tail = value_list<T, V ...>;
64
+ template <typename T, T Head , T... Tail > struct value_list <T, Head, Tail ...> {
65
+ static constexpr T head = Head ;
66
+ using tail = value_list<T, Tail ...>;
67
67
};
68
68
69
69
template <typename T> struct value_list <T> {};
70
70
71
71
// is_contained_value
72
- template <typename T, T V , typename TL >
72
+ template <typename T, T Value , typename ValueList >
73
73
struct is_contained_value
74
- : conditional_t <V == TL ::head, std::true_type,
75
- is_contained_value<T, V , tail_t <TL >>> {};
74
+ : conditional_t <Value == ValueList ::head, std::true_type,
75
+ is_contained_value<T, Value , tail_t <ValueList >>> {};
76
76
77
- template <typename T, T V >
78
- struct is_contained_value <T, V , value_list<T>> : std::false_type {};
77
+ template <typename T, T Value >
78
+ struct is_contained_value <T, Value , value_list<T>> : std::false_type {};
79
79
80
80
// address_space_list
81
- template <access::address_space... V >
82
- using address_space_list = value_list<access::address_space, V ...>;
81
+ template <access::address_space... Values >
82
+ using address_space_list = value_list<access::address_space, Values ...>;
83
83
84
- template <access::address_space AS, typename VL>
85
- using is_one_of_spaces = is_contained_value<access::address_space, AS, VL>;
84
+ template <access::address_space AddressSpace, typename ValueList>
85
+ using is_one_of_spaces =
86
+ is_contained_value<access::address_space, AddressSpace, ValueList>;
86
87
87
88
// size type predicates
88
89
template <typename T1, typename T2>
@@ -103,35 +104,39 @@ struct is_type_size_half_of : bool_constant<(sizeof(T1) == (sizeof(T2) / 2))> {
103
104
};
104
105
105
106
// find required type
106
- template <typename TL, template <typename , typename > class C , typename T>
107
+ template <typename TypeList, template <typename , typename > class Comp ,
108
+ typename T>
107
109
struct find_type {
108
- using head = head_t <TL >;
109
- using tail = typename find_type<tail_t <TL >, C , T>::type;
110
- using type = conditional_t <C <head, T>::value, head, tail>;
110
+ using head = head_t <TypeList >;
111
+ using tail = typename find_type<tail_t <TypeList >, Comp , T>::type;
112
+ using type = conditional_t <Comp <head, T>::value, head, tail>;
111
113
};
112
114
113
- template <template <typename , typename > class C , typename T>
114
- struct find_type <empty_type_list, C , T> {
115
+ template <template <typename , typename > class Comp , typename T>
116
+ struct find_type <empty_type_list, Comp , T> {
115
117
using type = void ;
116
118
};
117
119
118
- template <typename TL, template <typename , typename > class C , typename T>
119
- using find_type_t = typename find_type<TL, C, T>::type;
120
+ template <typename TypeList, template <typename , typename > class Comp ,
121
+ typename T>
122
+ using find_type_t = typename find_type<TypeList, Comp, T>::type;
120
123
121
- template <typename TL , typename T>
122
- using find_same_size_type_t = find_type_t <TL , is_type_size_equal, T>;
124
+ template <typename TypeList , typename T>
125
+ using find_same_size_type_t = find_type_t <TypeList , is_type_size_equal, T>;
123
126
124
- template <typename TL , typename T>
125
- using find_smaller_type_t = find_type_t <TL , is_type_size_less, T>;
127
+ template <typename TypeList , typename T>
128
+ using find_smaller_type_t = find_type_t <TypeList , is_type_size_less, T>;
126
129
127
- template <typename TL , typename T>
128
- using find_larger_type_t = find_type_t <TL , is_type_size_greater, T>;
130
+ template <typename TypeList , typename T>
131
+ using find_larger_type_t = find_type_t <TypeList , is_type_size_greater, T>;
129
132
130
- template <typename TL, typename T>
131
- using find_twice_as_small_type_t = find_type_t <TL, is_type_size_half_of, T>;
133
+ template <typename TypeList, typename T>
134
+ using find_twice_as_small_type_t =
135
+ find_type_t <TypeList, is_type_size_half_of, T>;
132
136
133
- template <typename TL, typename T>
134
- using find_twice_as_large_type_t = find_type_t <TL, is_type_size_double_of, T>;
137
+ template <typename TypeList, typename T>
138
+ using find_twice_as_large_type_t =
139
+ find_type_t <TypeList, is_type_size_double_of, T>;
135
140
136
141
} // namespace detail
137
142
} // namespace sycl
0 commit comments