@@ -33,13 +33,26 @@ template <class _IdxType, _IdxType... _Values>
33
33
struct __integer_sequence
34
34
{
35
35
template <template <class _OIdxType , _OIdxType...> class _ToIndexSeq , class _ToIndexType >
36
- using __convert = _ToIndexSeq<_ToIndexType, _Values...>;
36
+ using __convert _LIBCUDACXX_NODEBUG_TYPE = _ToIndexSeq<_ToIndexType, _Values...>;
37
37
38
38
template <size_t _Sp>
39
- using __to_tuple_indices = __tuple_indices<(_Values + _Sp)...>;
39
+ using __to_tuple_indices _LIBCUDACXX_NODEBUG_TYPE = __tuple_indices<(_Values + _Sp)...>;
40
40
};
41
41
42
- #ifndef _LIBCUDACXX_HAS_MAKE_INTEGER_SEQ
42
+ #if defined(_LIBCUDACXX_HAS_MAKE_INTEGER_SEQ)
43
+
44
+ template <size_t _Ep, size_t _Sp>
45
+ using __make_indices_imp _LIBCUDACXX_NODEBUG_TYPE =
46
+ typename __make_integer_seq<__integer_sequence, size_t , _Ep - _Sp>::template __to_tuple_indices<_Sp>;
47
+
48
+ #elif defined(_LIBCUDACXX_HAS_INTEGER_PACK) // ^^^ _LIBCUDACXX_HAS_MAKE_INTEGER_SEQ ^^^
49
+ // vvv _LIBCUDACXX_HAS_INTEGER_PACK vvv
50
+
51
+ template <size_t _Ep, size_t _Sp>
52
+ using __make_indices_imp _LIBCUDACXX_NODEBUG_TYPE =
53
+ typename __integer_sequence<size_t , __integer_pack(_Ep - _Sp)...>::template __to_tuple_indices<_Sp>;
54
+
55
+ #else // ^^^ _LIBCUDACXX_HAS_INTEGER_PACK ^^^ / vvv !_LIBCUDACXX_HAS_INTEGER_PACK vvv
43
56
44
57
namespace __detail
45
58
{
@@ -65,6 +78,7 @@ struct __repeat<__integer_sequence<_Tp, _Np...>, _Extra...>
65
78
66
79
template <size_t _Np>
67
80
struct __parity ;
81
+
68
82
template <size_t _Np>
69
83
struct __make : __parity<_Np % 8 >::template __pmake<_Np>
70
84
{};
@@ -170,15 +184,9 @@ struct __parity<7>
170
184
171
185
} // namespace __detail
172
186
173
- #endif // !_LIBCUDACXX_HAS_MAKE_INTEGER_SEQ
174
-
175
- #ifdef _LIBCUDACXX_HAS_MAKE_INTEGER_SEQ
176
- template <size_t _Ep, size_t _Sp>
177
- using __make_indices_imp =
178
- typename __make_integer_seq<__integer_sequence, size_t , _Ep - _Sp>::template __to_tuple_indices<_Sp>;
179
- #else
180
187
template <size_t _Ep, size_t _Sp>
181
- using __make_indices_imp = typename __detail::__make<_Ep - _Sp>::type::template __to_tuple_indices<_Sp>;
188
+ using __make_indices_imp _LIBCUDACXX_NODEBUG_TYPE =
189
+ typename __detail::__make<_Ep - _Sp>::type::template __to_tuple_indices<_Sp>;
182
190
183
191
#endif
184
192
@@ -201,7 +209,13 @@ using index_sequence = integer_sequence<size_t, _Ip...>;
201
209
template <class _Tp , _Tp _Ep>
202
210
using __make_integer_sequence _LIBCUDACXX_NODEBUG_TYPE = __make_integer_seq<integer_sequence, _Tp, _Ep>;
203
211
204
- #else // _LIBCUDACXX_HAS_MAKE_INTEGER_SEQ
212
+ #elif defined(_LIBCUDACXX_HAS_INTEGER_PACK) // ^^^ _LIBCUDACXX_HAS_MAKE_INTEGER_SEQ ^^^
213
+ // vvv _LIBCUDACXX_HAS_INTEGER_PACK vvv
214
+
215
+ template <class _Tp , _Tp _Ep>
216
+ using __make_integer_sequence _LIBCUDACXX_NODEBUG_TYPE = integer_sequence<_Tp, __integer_pack(_Ep)...>;
217
+
218
+ #else // ^^^ _LIBCUDACXX_HAS_INTEGER_PACK ^^^ / vvv !_LIBCUDACXX_HAS_INTEGER_PACK vvv
205
219
206
220
template <typename _Tp, _Tp _Np>
207
221
using __make_integer_sequence_unchecked _LIBCUDACXX_NODEBUG_TYPE =
0 commit comments