@@ -48,17 +48,6 @@ template <typename T, typename U = int> struct HasValue : std::false_type {};
48
48
template <typename T>
49
49
struct HasValue <T, decltype ((void )T::value, 0 )> : std::true_type {};
50
50
51
- // Checks that all types in a tuple have unique PropertyID.
52
- template <typename T> struct AllUnique {};
53
- template <typename ... Ts>
54
- struct AllUnique <std::tuple<Ts...>> : std::true_type {};
55
- template <typename T> struct AllUnique <std::tuple<T>> : std::true_type {};
56
- template <typename L, typename R, typename ... Rest>
57
- struct AllUnique <std::tuple<L, R, Rest...>>
58
- : sycl::detail::conditional_t <PropertyID<L>::value != PropertyID<R>::value,
59
- AllUnique<std::tuple<R, Rest...>>,
60
- std::false_type> {};
61
-
62
51
// ******************************************************************************
63
52
// Property identification
64
53
// ******************************************************************************
@@ -213,6 +202,17 @@ struct IsSorted<std::tuple<L, R, Rest...>>
213
202
IsSorted<std::tuple<R, Rest...>>,
214
203
std::false_type> {};
215
204
205
+ // Checks that all types in a sorted tuple have unique PropertyID.
206
+ template <typename T> struct SortedAllUnique {};
207
+ template <typename ... Ts>
208
+ struct SortedAllUnique <std::tuple<Ts...>> : std::true_type {};
209
+ template <typename T> struct SortedAllUnique <std::tuple<T>> : std::true_type {};
210
+ template <typename L, typename R, typename ... Rest>
211
+ struct SortedAllUnique <std::tuple<L, R, Rest...>>
212
+ : sycl::detail::conditional_t <PropertyID<L>::value != PropertyID<R>::value,
213
+ SortedAllUnique<std::tuple<R, Rest...>>,
214
+ std::false_type> {};
215
+
216
216
} // namespace detail
217
217
} // namespace experimental
218
218
} // namespace oneapi
0 commit comments