Skip to content

Commit 98075cc

Browse files
authored
Merge pull request #4 from allisonvacanti/more_cuda_hd_suppressions
Add missing CUDA host/device suppressions.
2 parents 2b53651 + 520e54c commit 98075cc

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

include/tao/tuple/tuple.hpp

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,13 +114,15 @@ namespace tao
114114
{
115115
T value;
116116

117+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
117118
TAO_TUPLE_CUDA_ANNOTATE_COMMON
118119
constexpr tuple_value() noexcept( std::is_nothrow_default_constructible< T >::value )
119120
: value()
120121
{
121122
static_assert( !std::is_reference< T >::value, "attempted to default construct a reference element in a tuple" );
122123
}
123124

125+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
124126
template< bool B, typename A >
125127
TAO_TUPLE_CUDA_ANNOTATE_COMMON
126128
tuple_value( uses_alloc_ctor< false, B >*, const A& )
@@ -129,6 +131,7 @@ namespace tao
129131
static_assert( !std::is_reference< T >::value, "attempted to default construct a reference element in a tuple" );
130132
}
131133

134+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
132135
template< typename A >
133136
TAO_TUPLE_CUDA_ANNOTATE_COMMON
134137
tuple_value( uses_alloc_ctor< true, true >*, const A& a )
@@ -137,6 +140,7 @@ namespace tao
137140
static_assert( !std::is_reference< T >::value, "attempted to default construct a reference element in a tuple" );
138141
}
139142

143+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
140144
template< typename A >
141145
TAO_TUPLE_CUDA_ANNOTATE_COMMON
142146
tuple_value( uses_alloc_ctor< true, false >*, const A& a )
@@ -145,6 +149,7 @@ namespace tao
145149
static_assert( !std::is_reference< T >::value, "attempted to default construct a reference element in a tuple" );
146150
}
147151

152+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
148153
template< typename U,
149154
typename = impl::enable_if_t< !std::is_same< typename std::decay< U >::type, tuple_value >::value >,
150155
typename = impl::enable_if_t< std::is_constructible< T, U >::value > >
@@ -153,6 +158,7 @@ namespace tao
153158
{
154159
}
155160

161+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
156162
template< bool B, typename A, typename U >
157163
TAO_TUPLE_CUDA_ANNOTATE_COMMON
158164
tuple_value( uses_alloc_ctor< false, B >*, const A&, U&& v )
@@ -161,6 +167,7 @@ namespace tao
161167
// TODO: Add check for rvalue to lvalue reference
162168
}
163169

170+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
164171
template< typename A, typename U >
165172
TAO_TUPLE_CUDA_ANNOTATE_COMMON
166173
tuple_value( uses_alloc_ctor< true, true >*, const A& a, U&& v )
@@ -169,6 +176,7 @@ namespace tao
169176
// TODO: Add check for rvalue to lvalue reference
170177
}
171178

179+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
172180
template< typename A, typename U >
173181
TAO_TUPLE_CUDA_ANNOTATE_COMMON
174182
tuple_value( uses_alloc_ctor< true, false >*, const A& a, U&& v )
@@ -213,33 +221,38 @@ namespace tao
213221
struct tuple_value< I, T, true >
214222
: private T
215223
{
224+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
216225
constexpr TAO_TUPLE_CUDA_ANNOTATE_COMMON
217226
tuple_value() noexcept( std::is_nothrow_default_constructible< T >::value )
218227
: T()
219228
{
220229
}
221230

231+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
222232
template< bool B, typename A >
223233
TAO_TUPLE_CUDA_ANNOTATE_COMMON
224234
tuple_value( uses_alloc_ctor< false, B >*, const A& )
225235
: T()
226236
{
227237
}
228238

239+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
229240
template< typename A >
230241
TAO_TUPLE_CUDA_ANNOTATE_COMMON
231242
tuple_value( uses_alloc_ctor< true, true >*, const A& a )
232243
: T( std::allocator_arg_t(), a )
233244
{
234245
}
235246

247+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
236248
template< typename A >
237249
TAO_TUPLE_CUDA_ANNOTATE_COMMON
238250
tuple_value( uses_alloc_ctor< true, false >*, const A& a )
239251
: T( a )
240252
{
241253
}
242254

255+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
243256
template< typename U,
244257
typename = impl::enable_if_t< !std::is_same< typename std::decay< U >::type, tuple_value >::value >,
245258
typename = impl::enable_if_t< std::is_constructible< T, U >::value > >
@@ -248,20 +261,23 @@ namespace tao
248261
{
249262
}
250263

264+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
251265
template< bool B, typename A, typename U >
252266
TAO_TUPLE_CUDA_ANNOTATE_COMMON
253267
tuple_value( uses_alloc_ctor< false, B >*, const A&, U&& v )
254268
: T( std::forward< U >( v ) )
255269
{
256270
}
257271

272+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
258273
template< typename A, typename U >
259274
TAO_TUPLE_CUDA_ANNOTATE_COMMON
260275
tuple_value( uses_alloc_ctor< true, true >*, const A& a, U&& v )
261276
: T( std::allocator_arg_t(), a, std::forward< U >( v ) )
262277
{
263278
}
264279

280+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
265281
template< typename A, typename U >
266282
TAO_TUPLE_CUDA_ANNOTATE_COMMON
267283
tuple_value( uses_alloc_ctor< true, false >*, const A& a, U&& v )
@@ -413,13 +429,15 @@ namespace tao
413429
{
414430
}
415431

432+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
416433
template< typename dummy = void,
417434
typename = impl::enable_if_t< seq::is_all< impl::dependent_type< std::is_copy_constructible< Ts >, dummy >::value... >::value > >
418435
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 )
419436
: base( ts... )
420437
{
421438
}
422439

440+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
423441
template< typename... Us,
424442
typename = impl::enable_if_t< sizeof...( Us ) == sizeof...( Ts ) >,
425443
typename = impl::enable_if_t< seq::is_all< std::is_constructible< Ts, Us&& >::value... >::value > >
@@ -431,6 +449,7 @@ namespace tao
431449
tuple( const tuple& ) = default;
432450
tuple( tuple&& ) = default;
433451

452+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
434453
template< typename... Us,
435454
typename = impl::enable_if_t< sizeof...( Us ) == sizeof...( Ts ) >,
436455
typename = impl::enable_if_t< seq::is_all< std::is_constructible< Ts, const Us& >::value... >::value > >
@@ -439,6 +458,7 @@ namespace tao
439458
{
440459
}
441460

461+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
442462
template< typename... Us,
443463
typename = impl::enable_if_t< sizeof...( Us ) == sizeof...( Ts ) >,
444464
typename = impl::enable_if_t< seq::is_all< std::is_constructible< Ts, Us&& >::value... >::value > >
@@ -447,6 +467,7 @@ namespace tao
447467
{
448468
}
449469

470+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
450471
template< typename A,
451472
typename dummy = void,
452473
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
456477
{
457478
}
458479

480+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
459481
template< typename A,
460482
typename dummy = void,
461483
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
465487
{
466488
}
467489

490+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
468491
template< typename A,
469492
typename... Us,
470493
typename = impl::enable_if_t< sizeof...( Us ) == sizeof...( Ts ) >,
@@ -475,20 +498,23 @@ namespace tao
475498
{
476499
}
477500

501+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
478502
template< typename A >
479503
TAO_TUPLE_CUDA_ANNOTATE_COMMON
480504
tuple( std::allocator_arg_t, const A& a, const tuple& v )
481505
: base( std::allocator_arg_t(), a, v )
482506
{
483507
}
484508

509+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
485510
template< typename A >
486511
TAO_TUPLE_CUDA_ANNOTATE_COMMON
487512
tuple( std::allocator_arg_t, const A& a, tuple&& v )
488513
: base( std::allocator_arg_t(), a, std::move( v ) )
489514
{
490515
}
491516

517+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
492518
template< typename A,
493519
typename... Us,
494520
typename = impl::enable_if_t< sizeof...( Us ) == sizeof...( Ts ) >,
@@ -499,6 +525,7 @@ namespace tao
499525
{
500526
}
501527

528+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
502529
template< typename A,
503530
typename... Us,
504531
typename = impl::enable_if_t< sizeof...( Us ) == sizeof...( Ts ) >,
@@ -531,15 +558,18 @@ namespace tao
531558
template<>
532559
struct tuple<>
533560
{
561+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
534562
TAO_TUPLE_CUDA_ANNOTATE_COMMON
535563
constexpr tuple() noexcept {}
536564

565+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
537566
template< typename A >
538567
TAO_TUPLE_CUDA_ANNOTATE_COMMON
539568
tuple( std::allocator_arg_t, const A& ) noexcept
540569
{
541570
}
542571

572+
TAO_TUPLE_SUPPRESS_NVCC_HD_WARN
543573
template< typename A >
544574
TAO_TUPLE_CUDA_ANNOTATE_COMMON
545575
tuple( std::allocator_arg_t, const A&, const tuple& ) noexcept

0 commit comments

Comments
 (0)