@@ -114,13 +114,15 @@ namespace tao
114
114
{
115
115
T value;
116
116
117
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
117
118
TAO_TUPLE_CUDA_ANNOTATE_COMMON
118
119
constexpr tuple_value () noexcept ( std::is_nothrow_default_constructible< T >::value )
119
120
: value()
120
121
{
121
122
static_assert ( !std::is_reference< T >::value, " attempted to default construct a reference element in a tuple" );
122
123
}
123
124
125
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
124
126
template < bool B, typename A >
125
127
TAO_TUPLE_CUDA_ANNOTATE_COMMON
126
128
tuple_value ( uses_alloc_ctor< false , B >*, const A& )
@@ -129,6 +131,7 @@ namespace tao
129
131
static_assert ( !std::is_reference< T >::value, " attempted to default construct a reference element in a tuple" );
130
132
}
131
133
134
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
132
135
template < typename A >
133
136
TAO_TUPLE_CUDA_ANNOTATE_COMMON
134
137
tuple_value ( uses_alloc_ctor< true , true >*, const A& a )
@@ -137,6 +140,7 @@ namespace tao
137
140
static_assert ( !std::is_reference< T >::value, " attempted to default construct a reference element in a tuple" );
138
141
}
139
142
143
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
140
144
template < typename A >
141
145
TAO_TUPLE_CUDA_ANNOTATE_COMMON
142
146
tuple_value ( uses_alloc_ctor< true , false >*, const A& a )
@@ -145,6 +149,7 @@ namespace tao
145
149
static_assert ( !std::is_reference< T >::value, " attempted to default construct a reference element in a tuple" );
146
150
}
147
151
152
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
148
153
template < typename U,
149
154
typename = impl::enable_if_t < !std::is_same< typename std::decay< U >::type, tuple_value >::value >,
150
155
typename = impl::enable_if_t < std::is_constructible< T, U >::value > >
@@ -153,6 +158,7 @@ namespace tao
153
158
{
154
159
}
155
160
161
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
156
162
template < bool B, typename A, typename U >
157
163
TAO_TUPLE_CUDA_ANNOTATE_COMMON
158
164
tuple_value ( uses_alloc_ctor< false , B >*, const A&, U&& v )
@@ -161,6 +167,7 @@ namespace tao
161
167
// TODO: Add check for rvalue to lvalue reference
162
168
}
163
169
170
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
164
171
template < typename A, typename U >
165
172
TAO_TUPLE_CUDA_ANNOTATE_COMMON
166
173
tuple_value ( uses_alloc_ctor< true , true >*, const A& a, U&& v )
@@ -169,6 +176,7 @@ namespace tao
169
176
// TODO: Add check for rvalue to lvalue reference
170
177
}
171
178
179
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
172
180
template < typename A, typename U >
173
181
TAO_TUPLE_CUDA_ANNOTATE_COMMON
174
182
tuple_value ( uses_alloc_ctor< true , false >*, const A& a, U&& v )
@@ -213,33 +221,38 @@ namespace tao
213
221
struct tuple_value < I, T, true >
214
222
: private T
215
223
{
224
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
216
225
constexpr TAO_TUPLE_CUDA_ANNOTATE_COMMON
217
226
tuple_value () noexcept ( std::is_nothrow_default_constructible< T >::value )
218
227
: T()
219
228
{
220
229
}
221
230
231
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
222
232
template < bool B, typename A >
223
233
TAO_TUPLE_CUDA_ANNOTATE_COMMON
224
234
tuple_value ( uses_alloc_ctor< false , B >*, const A& )
225
235
: T()
226
236
{
227
237
}
228
238
239
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
229
240
template < typename A >
230
241
TAO_TUPLE_CUDA_ANNOTATE_COMMON
231
242
tuple_value ( uses_alloc_ctor< true , true >*, const A& a )
232
243
: T( std::allocator_arg_t (), a )
233
244
{
234
245
}
235
246
247
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
236
248
template < typename A >
237
249
TAO_TUPLE_CUDA_ANNOTATE_COMMON
238
250
tuple_value ( uses_alloc_ctor< true , false >*, const A& a )
239
251
: T( a )
240
252
{
241
253
}
242
254
255
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
243
256
template < typename U,
244
257
typename = impl::enable_if_t < !std::is_same< typename std::decay< U >::type, tuple_value >::value >,
245
258
typename = impl::enable_if_t < std::is_constructible< T, U >::value > >
@@ -248,20 +261,23 @@ namespace tao
248
261
{
249
262
}
250
263
264
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
251
265
template < bool B, typename A, typename U >
252
266
TAO_TUPLE_CUDA_ANNOTATE_COMMON
253
267
tuple_value ( uses_alloc_ctor< false , B >*, const A&, U&& v )
254
268
: T( std::forward< U >( v ) )
255
269
{
256
270
}
257
271
272
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
258
273
template < typename A, typename U >
259
274
TAO_TUPLE_CUDA_ANNOTATE_COMMON
260
275
tuple_value ( uses_alloc_ctor< true , true >*, const A& a, U&& v )
261
276
: T( std::allocator_arg_t (), a, std::forward< U >( v ) )
262
277
{
263
278
}
264
279
280
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
265
281
template < typename A, typename U >
266
282
TAO_TUPLE_CUDA_ANNOTATE_COMMON
267
283
tuple_value ( uses_alloc_ctor< true , false >*, const A& a, U&& v )
@@ -413,13 +429,15 @@ namespace tao
413
429
{
414
430
}
415
431
432
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
416
433
template < typename dummy = void ,
417
434
typename = impl::enable_if_t < seq::is_all< impl::dependent_type< std::is_copy_constructible< Ts >, dummy >::value... >::value > >
418
435
TAO_TUPLE_CONSTEXPR TAO_TUPLE_CUDA_ANNOTATE_COMMON explicit tuple ( const Ts&... ts ) noexcept ( seq::is_all< std::is_nothrow_copy_constructible< Ts >::value... >::value )
419
436
: base( ts... )
420
437
{
421
438
}
422
439
440
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
423
441
template < typename ... Us,
424
442
typename = impl::enable_if_t < sizeof ...( Us ) == sizeof ...( Ts ) >,
425
443
typename = impl::enable_if_t < seq::is_all< std::is_constructible< Ts, Us&& >::value... >::value > >
@@ -431,6 +449,7 @@ namespace tao
431
449
tuple ( const tuple& ) = default ;
432
450
tuple ( tuple&& ) = default ;
433
451
452
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
434
453
template < typename ... Us,
435
454
typename = impl::enable_if_t < sizeof ...( Us ) == sizeof ...( Ts ) >,
436
455
typename = impl::enable_if_t < seq::is_all< std::is_constructible< Ts, const Us& >::value... >::value > >
@@ -439,6 +458,7 @@ namespace tao
439
458
{
440
459
}
441
460
461
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
442
462
template < typename ... Us,
443
463
typename = impl::enable_if_t < sizeof ...( Us ) == sizeof ...( Ts ) >,
444
464
typename = impl::enable_if_t < seq::is_all< std::is_constructible< Ts, Us&& >::value... >::value > >
@@ -447,6 +467,7 @@ namespace tao
447
467
{
448
468
}
449
469
470
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
450
471
template < typename A,
451
472
typename dummy = void ,
452
473
typename = impl::enable_if_t < seq::is_all< impl::dependent_type< std::is_default_constructible< Ts >, dummy >::value... >::value > >
@@ -456,6 +477,7 @@ namespace tao
456
477
{
457
478
}
458
479
480
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
459
481
template < typename A,
460
482
typename dummy = void ,
461
483
typename = impl::enable_if_t < seq::is_all< impl::dependent_type< std::is_copy_constructible< Ts >, dummy >::value... >::value > >
@@ -465,6 +487,7 @@ namespace tao
465
487
{
466
488
}
467
489
490
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
468
491
template < typename A,
469
492
typename ... Us,
470
493
typename = impl::enable_if_t < sizeof ...( Us ) == sizeof ...( Ts ) >,
@@ -475,20 +498,23 @@ namespace tao
475
498
{
476
499
}
477
500
501
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
478
502
template < typename A >
479
503
TAO_TUPLE_CUDA_ANNOTATE_COMMON
480
504
tuple ( std::allocator_arg_t , const A& a, const tuple& v )
481
505
: base( std::allocator_arg_t (), a, v )
482
506
{
483
507
}
484
508
509
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
485
510
template < typename A >
486
511
TAO_TUPLE_CUDA_ANNOTATE_COMMON
487
512
tuple ( std::allocator_arg_t , const A& a, tuple&& v )
488
513
: base( std::allocator_arg_t (), a, std::move( v ) )
489
514
{
490
515
}
491
516
517
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
492
518
template < typename A,
493
519
typename ... Us,
494
520
typename = impl::enable_if_t < sizeof ...( Us ) == sizeof ...( Ts ) >,
@@ -499,6 +525,7 @@ namespace tao
499
525
{
500
526
}
501
527
528
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
502
529
template < typename A,
503
530
typename ... Us,
504
531
typename = impl::enable_if_t < sizeof ...( Us ) == sizeof ...( Ts ) >,
@@ -531,15 +558,18 @@ namespace tao
531
558
template <>
532
559
struct tuple <>
533
560
{
561
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
534
562
TAO_TUPLE_CUDA_ANNOTATE_COMMON
535
563
constexpr tuple () noexcept {}
536
564
565
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
537
566
template < typename A >
538
567
TAO_TUPLE_CUDA_ANNOTATE_COMMON
539
568
tuple ( std::allocator_arg_t , const A& ) noexcept
540
569
{
541
570
}
542
571
572
+ TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
543
573
template < typename A >
544
574
TAO_TUPLE_CUDA_ANNOTATE_COMMON
545
575
tuple ( std::allocator_arg_t , const A&, const tuple& ) noexcept
0 commit comments