Skip to content

Commit 3b8a625

Browse files
committed
Suppress execution checks for vocabulary types (#3578)
* Suppress execution checks for optional * Suppress execution checks for `expected` * Suppress execution checks for `pair` * Suppress execution checks for `variant`
1 parent e23d0c7 commit 3b8a625

30 files changed

+1726
-18
lines changed

libcudacxx/include/cuda/std/__expected/bad_expected_access.h

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,6 @@ class bad_expected_access;
5151
template <>
5252
class bad_expected_access<void> : public ::std::exception
5353
{
54-
protected:
55-
_CCCL_HIDE_FROM_ABI bad_expected_access() noexcept = default;
56-
_CCCL_HIDE_FROM_ABI bad_expected_access(const bad_expected_access&) = default;
57-
_CCCL_HIDE_FROM_ABI bad_expected_access(bad_expected_access&&) = default;
58-
_CCCL_HIDE_FROM_ABI bad_expected_access& operator=(const bad_expected_access&) = default;
59-
_CCCL_HIDE_FROM_ABI bad_expected_access& operator=(bad_expected_access&&) = default;
60-
~bad_expected_access() noexcept override = default;
61-
6254
public:
6355
// The way this has been designed (by using a class template below) means that we'll already
6456
// have a profusion of these vtables in TUs, and the dynamic linker will already have a bunch
@@ -74,10 +66,21 @@ template <class _Err>
7466
class bad_expected_access : public bad_expected_access<void>
7567
{
7668
public:
77-
explicit bad_expected_access(_Err __e)
69+
# if _CCCL_CUDA_COMPILER(CLANG) // Clang needs this or it breaks with device only types
70+
_CCCL_HOST_DEVICE
71+
# endif // _CCCL_CUDA_COMPILER(CLANG)
72+
_CCCL_HIDE_FROM_ABI explicit bad_expected_access(_Err __e)
7873
: __unex_(_CUDA_VSTD::move(__e))
7974
{}
8075

76+
# if _CCCL_CUDA_COMPILER(CLANG) // Clang needs this or it breaks with device only types
77+
_CCCL_HOST_DEVICE
78+
# endif // _CCCL_CUDA_COMPILER(CLANG)
79+
_CCCL_HIDE_FROM_ABI ~bad_expected_access() noexcept
80+
{
81+
__unex_.~_Err();
82+
}
83+
8184
_LIBCUDACXX_HIDE_FROM_ABI _Err& error() & noexcept
8285
{
8386
return __unex_;

libcudacxx/include/cuda/std/__expected/expected.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1077,6 +1077,7 @@ class expected : private __expected_move_assign<_Tp, _Err>
10771077
}
10781078

10791079
// [expected.object.eq], equality operators
1080+
_CCCL_EXEC_CHECK_DISABLE
10801081
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator==(const expected& __x, const expected& __y)
10811082
{
10821083
if (__x.__has_val_ != __y.has_value())
@@ -1097,12 +1098,14 @@ class expected : private __expected_move_assign<_Tp, _Err>
10971098
}
10981099

10991100
# if _CCCL_STD_VER < 2020
1101+
_CCCL_EXEC_CHECK_DISABLE
11001102
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator!=(const expected& __x, const expected& __y)
11011103
{
11021104
return !(__x == __y);
11031105
}
11041106
# endif // _CCCL_STD_VER < 2020
11051107

1108+
_CCCL_EXEC_CHECK_DISABLE
11061109
_LIBCUDACXX_TEMPLATE(class _T2, class _E2)
11071110
_LIBCUDACXX_REQUIRES((!_CCCL_TRAIT(is_void, _T2)))
11081111
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator==(const expected& __x, const expected<_T2, _E2>& __y)
@@ -1125,6 +1128,7 @@ class expected : private __expected_move_assign<_Tp, _Err>
11251128
}
11261129

11271130
# if _CCCL_STD_VER < 2020
1131+
_CCCL_EXEC_CHECK_DISABLE
11281132
_LIBCUDACXX_TEMPLATE(class _T2, class _E2)
11291133
_LIBCUDACXX_REQUIRES((!_CCCL_TRAIT(is_void, _T2)))
11301134
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator!=(const expected& __x, const expected<_T2, _E2>& __y)
@@ -1133,25 +1137,29 @@ class expected : private __expected_move_assign<_Tp, _Err>
11331137
}
11341138
# endif // _CCCL_STD_VER < 2020
11351139

1140+
_CCCL_EXEC_CHECK_DISABLE
11361141
_LIBCUDACXX_TEMPLATE(class _T2)
11371142
_LIBCUDACXX_REQUIRES((!__expected::__is_expected_nonvoid<_T2>) )
11381143
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator==(const expected& __x, const _T2& __v)
11391144
{
11401145
return __x.__has_val_ && static_cast<bool>(__x.__union_.__val_ == __v);
11411146
}
11421147
# if _CCCL_STD_VER < 2020
1148+
_CCCL_EXEC_CHECK_DISABLE
11431149
_LIBCUDACXX_TEMPLATE(class _T2)
11441150
_LIBCUDACXX_REQUIRES((!__expected::__is_expected_nonvoid<_T2>) )
11451151
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator==(const _T2& __v, const expected& __x)
11461152
{
11471153
return __x.__has_val_ && static_cast<bool>(__x.__union_.__val_ == __v);
11481154
}
1155+
_CCCL_EXEC_CHECK_DISABLE
11491156
_LIBCUDACXX_TEMPLATE(class _T2)
11501157
_LIBCUDACXX_REQUIRES((!__expected::__is_expected_nonvoid<_T2>) )
11511158
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator!=(const expected& __x, const _T2& __v)
11521159
{
11531160
return !__x.__has_val_ || static_cast<bool>(__x.__union_.__val_ != __v);
11541161
}
1162+
_CCCL_EXEC_CHECK_DISABLE
11551163
_LIBCUDACXX_TEMPLATE(class _T2)
11561164
_LIBCUDACXX_REQUIRES((!__expected::__is_expected_nonvoid<_T2>) )
11571165
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator!=(const _T2& __v, const expected& __x)
@@ -1160,22 +1168,26 @@ class expected : private __expected_move_assign<_Tp, _Err>
11601168
}
11611169
# endif // _CCCL_STD_VER < 2020
11621170

1171+
_CCCL_EXEC_CHECK_DISABLE
11631172
template <class _E2>
11641173
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator==(const expected& __x, const unexpected<_E2>& __e)
11651174
{
11661175
return !__x.__has_val_ && static_cast<bool>(__x.__union_.__unex_ == __e.error());
11671176
}
11681177
# if _CCCL_STD_VER < 2020
1178+
_CCCL_EXEC_CHECK_DISABLE
11691179
template <class _E2>
11701180
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator==(const unexpected<_E2>& __e, const expected& __x)
11711181
{
11721182
return !__x.__has_val_ && static_cast<bool>(__x.__union_.__unex_ == __e.error());
11731183
}
1184+
_CCCL_EXEC_CHECK_DISABLE
11741185
template <class _E2>
11751186
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator!=(const expected& __x, const unexpected<_E2>& __e)
11761187
{
11771188
return __x.__has_val_ || static_cast<bool>(__x.__union_.__unex_ != __e.error());
11781189
}
1190+
_CCCL_EXEC_CHECK_DISABLE
11791191
template <class _E2>
11801192
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator!=(const unexpected<_E2>& __e, const expected& __x)
11811193
{
@@ -1916,6 +1928,7 @@ class expected<void, _Err> : private __expected_move_assign<void, _Err>
19161928
}
19171929

19181930
// [expected.void.eq], equality operators
1931+
_CCCL_EXEC_CHECK_DISABLE
19191932
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator==(const expected& __x, const expected& __y) noexcept
19201933
{
19211934
if (__x.__has_val_ != __y.has_value())
@@ -1928,12 +1941,14 @@ class expected<void, _Err> : private __expected_move_assign<void, _Err>
19281941
}
19291942
}
19301943
# if _CCCL_STD_VER < 2020
1944+
_CCCL_EXEC_CHECK_DISABLE
19311945
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator!=(const expected& __x, const expected& __y) noexcept
19321946
{
19331947
return !(__x == __y);
19341948
}
19351949
# endif
19361950

1951+
_CCCL_EXEC_CHECK_DISABLE
19371952
template <class _E2>
19381953
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool
19391954
operator==(const expected& __x, const expected<void, _E2>& __y) noexcept
@@ -1948,6 +1963,7 @@ class expected<void, _Err> : private __expected_move_assign<void, _Err>
19481963
}
19491964
}
19501965
# if _CCCL_STD_VER < 2020
1966+
_CCCL_EXEC_CHECK_DISABLE
19511967
template <class _E2>
19521968
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool
19531969
operator!=(const expected& __x, const expected<void, _E2>& __y) noexcept
@@ -1956,22 +1972,26 @@ class expected<void, _Err> : private __expected_move_assign<void, _Err>
19561972
}
19571973
# endif
19581974

1975+
_CCCL_EXEC_CHECK_DISABLE
19591976
template <class _E2>
19601977
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator==(const expected& __x, const unexpected<_E2>& __y) noexcept
19611978
{
19621979
return !__x.__has_val_ && static_cast<bool>(__x.__union_.__unex_ == __y.error());
19631980
}
19641981
# if _CCCL_STD_VER < 2020
1982+
_CCCL_EXEC_CHECK_DISABLE
19651983
template <class _E2>
19661984
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator==(const unexpected<_E2>& __y, const expected& __x) noexcept
19671985
{
19681986
return !__x.__has_val_ && static_cast<bool>(__x.__union_.__unex_ == __y.error());
19691987
}
1988+
_CCCL_EXEC_CHECK_DISABLE
19701989
template <class _E2>
19711990
_LIBCUDACXX_HIDE_FROM_ABI friend constexpr bool operator!=(const expected& __x, const unexpected<_E2>& __y) noexcept
19721991
{
19731992
return __x.__has_val_ || static_cast<bool>(__x.__union_.__unex_ != __y.error());
19741993
}
1994+
_CCCL_EXEC_CHECK_DISABLE
19751995
template <class _E2>
19761996
_LIBCUDACXX_HIDE_FROM_ABI friend constexpr bool operator!=(const unexpected<_E2>& __y, const expected& __x) noexcept
19771997
{

libcudacxx/include/cuda/std/__expected/expected_base.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,30 +72,35 @@ union __expected_union_t
7272
struct __empty_t
7373
{};
7474

75+
_CCCL_EXEC_CHECK_DISABLE
7576
_LIBCUDACXX_TEMPLATE(class _Tp2 = _Tp)
7677
_LIBCUDACXX_REQUIRES(_CCCL_TRAIT(is_default_constructible, _Tp2))
7778
_LIBCUDACXX_HIDE_FROM_ABI constexpr __expected_union_t() noexcept(_CCCL_TRAIT(is_nothrow_default_constructible, _Tp2))
7879
: __val_()
7980
{}
8081

82+
_CCCL_EXEC_CHECK_DISABLE
8183
_LIBCUDACXX_TEMPLATE(class _Tp2 = _Tp)
8284
_LIBCUDACXX_REQUIRES((!_CCCL_TRAIT(is_default_constructible, _Tp2)))
8385
_LIBCUDACXX_HIDE_FROM_ABI constexpr __expected_union_t() noexcept
8486
: __empty_()
8587
{}
8688

89+
_CCCL_EXEC_CHECK_DISABLE
8790
template <class... _Args>
8891
_LIBCUDACXX_HIDE_FROM_ABI constexpr __expected_union_t(in_place_t, _Args&&... __args) noexcept(
8992
_CCCL_TRAIT(is_nothrow_constructible, _Tp, _Args...))
9093
: __val_(_CUDA_VSTD::forward<_Args>(__args)...)
9194
{}
9295

96+
_CCCL_EXEC_CHECK_DISABLE
9397
template <class... _Args>
9498
_LIBCUDACXX_HIDE_FROM_ABI constexpr __expected_union_t(unexpect_t, _Args&&... __args) noexcept(
9599
_CCCL_TRAIT(is_nothrow_constructible, _Err, _Args...))
96100
: __unex_(_CUDA_VSTD::forward<_Args>(__args)...)
97101
{}
98102

103+
_CCCL_EXEC_CHECK_DISABLE
99104
template <class _Fun, class... _Args>
100105
_LIBCUDACXX_HIDE_FROM_ABI constexpr __expected_union_t(
101106
__expected_construct_from_invoke_tag,
@@ -105,6 +110,7 @@ union __expected_union_t
105110
: __val_(_CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun), _CUDA_VSTD::forward<_Args>(__args)...))
106111
{}
107112

113+
_CCCL_EXEC_CHECK_DISABLE
108114
template <class _Fun, class... _Args>
109115
_LIBCUDACXX_HIDE_FROM_ABI constexpr __expected_union_t(
110116
__expected_construct_from_invoke_tag,
@@ -129,18 +135,21 @@ union __expected_union_t<_Tp, _Err, true>
129135
struct __empty_t
130136
{};
131137

138+
_CCCL_EXEC_CHECK_DISABLE
132139
_LIBCUDACXX_TEMPLATE(class _Tp2 = _Tp)
133140
_LIBCUDACXX_REQUIRES(_CCCL_TRAIT(is_default_constructible, _Tp2))
134141
_LIBCUDACXX_HIDE_FROM_ABI constexpr __expected_union_t() noexcept(_CCCL_TRAIT(is_nothrow_default_constructible, _Tp2))
135142
: __val_()
136143
{}
137144

145+
_CCCL_EXEC_CHECK_DISABLE
138146
_LIBCUDACXX_TEMPLATE(class _Tp2 = _Tp)
139147
_LIBCUDACXX_REQUIRES((!_CCCL_TRAIT(is_default_constructible, _Tp2)))
140148
_LIBCUDACXX_HIDE_FROM_ABI constexpr __expected_union_t() noexcept
141149
: __empty_()
142150
{}
143151

152+
_CCCL_EXEC_CHECK_DISABLE
144153
template <class... _Args>
145154
_LIBCUDACXX_HIDE_FROM_ABI constexpr __expected_union_t(in_place_t, _Args&&... __args) noexcept(
146155
_CCCL_TRAIT(is_nothrow_constructible, _Tp, _Args...))
@@ -153,6 +162,7 @@ union __expected_union_t<_Tp, _Err, true>
153162
: __unex_(_CUDA_VSTD::forward<_Args>(__args)...)
154163
{}
155164

165+
_CCCL_EXEC_CHECK_DISABLE
156166
template <class _Fun, class... _Args>
157167
_LIBCUDACXX_HIDE_FROM_ABI constexpr __expected_union_t(
158168
__expected_construct_from_invoke_tag,
@@ -162,6 +172,7 @@ union __expected_union_t<_Tp, _Err, true>
162172
: __val_(_CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun), _CUDA_VSTD::forward<_Args>(__args)...))
163173
{}
164174

175+
_CCCL_EXEC_CHECK_DISABLE
165176
template <class _Fun, class... _Args>
166177
_LIBCUDACXX_HIDE_FROM_ABI constexpr __expected_union_t(
167178
__expected_construct_from_invoke_tag,
@@ -437,6 +448,7 @@ struct __expected_storage : __expected_destruct<_Tp, _Err>
437448
{
438449
_LIBCUDACXX_DELEGATE_CONSTRUCTORS(__expected_storage, __expected_destruct, _Tp, _Err);
439450

451+
_CCCL_EXEC_CHECK_DISABLE
440452
_LIBCUDACXX_TEMPLATE(class _T1, class _T2, class... _Args)
441453
_LIBCUDACXX_REQUIRES(_CCCL_TRAIT(is_nothrow_constructible, _T1, _Args...))
442454
static _LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 void
@@ -446,6 +458,7 @@ struct __expected_storage : __expected_destruct<_Tp, _Err>
446458
_LIBCUDACXX_CONSTRUCT_AT(__newval, _CUDA_VSTD::forward<_Args>(__args)...);
447459
}
448460

461+
_CCCL_EXEC_CHECK_DISABLE
449462
_LIBCUDACXX_TEMPLATE(class _T1, class _T2, class... _Args)
450463
_LIBCUDACXX_REQUIRES((!_CCCL_TRAIT(is_nothrow_constructible, _T1, _Args...)) _LIBCUDACXX_AND _CCCL_TRAIT(
451464
is_nothrow_move_constructible, _T1))
@@ -457,6 +470,7 @@ struct __expected_storage : __expected_destruct<_Tp, _Err>
457470
_LIBCUDACXX_CONSTRUCT_AT(__newval, _CUDA_VSTD::move(__tmp));
458471
}
459472

473+
_CCCL_EXEC_CHECK_DISABLE
460474
_LIBCUDACXX_TEMPLATE(class _T1, class _T2, class... _Args)
461475
_LIBCUDACXX_REQUIRES((!_CCCL_TRAIT(is_nothrow_constructible, _T1, _Args...)) _LIBCUDACXX_AND(
462476
!_CCCL_TRAIT(is_nothrow_move_constructible, _T1)))
@@ -476,6 +490,7 @@ struct __expected_storage : __expected_destruct<_Tp, _Err>
476490
__trans.__complete();
477491
}
478492

493+
_CCCL_EXEC_CHECK_DISABLE
479494
_LIBCUDACXX_TEMPLATE(class _Err2 = _Err)
480495
_LIBCUDACXX_REQUIRES(_CCCL_TRAIT(is_nothrow_move_constructible, _Err2))
481496
static _LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 void
@@ -494,6 +509,7 @@ struct __expected_storage : __expected_destruct<_Tp, _Err>
494509
__with_err.__has_val_ = true;
495510
}
496511

512+
_CCCL_EXEC_CHECK_DISABLE
497513
_LIBCUDACXX_TEMPLATE(class _Err2 = _Err)
498514
_LIBCUDACXX_REQUIRES((!_CCCL_TRAIT(is_nothrow_move_constructible, _Err2)))
499515
static _LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 void
@@ -654,6 +670,7 @@ struct __expected_copy_assign<_Tp, _Err, __smf_availability::__available> : __ex
654670
_CCCL_HIDE_FROM_ABI __expected_copy_assign(const __expected_copy_assign&) = default;
655671
_CCCL_HIDE_FROM_ABI __expected_copy_assign(__expected_copy_assign&&) = default;
656672

673+
_CCCL_EXEC_CHECK_DISABLE
657674
_LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 __expected_copy_assign&
658675
operator=(const __expected_copy_assign& __other) noexcept(
659676
_CCCL_TRAIT(is_nothrow_copy_assignable, _Tp) && _CCCL_TRAIT(is_nothrow_copy_constructible, _Tp)
@@ -918,6 +935,7 @@ struct __expected_storage<void, _Err> : __expected_destruct<void, _Err>
918935
{
919936
_LIBCUDACXX_DELEGATE_CONSTRUCTORS(__expected_storage, __expected_destruct, void, _Err);
920937

938+
_CCCL_EXEC_CHECK_DISABLE
921939
static _LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 void __swap_val_unex_impl(
922940
__expected_storage& __with_val,
923941
__expected_storage& __with_err) noexcept(_CCCL_TRAIT(is_nothrow_move_constructible, _Err))

libcudacxx/include/cuda/std/__expected/unexpected.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ class unexpected
7373
_CCCL_HIDE_FROM_ABI unexpected(const unexpected&) = default;
7474
_CCCL_HIDE_FROM_ABI unexpected(unexpected&&) = default;
7575

76+
_CCCL_EXEC_CHECK_DISABLE
7677
_LIBCUDACXX_TEMPLATE(class _Error = _Err)
7778
_LIBCUDACXX_REQUIRES((!_CCCL_TRAIT(is_same, remove_cvref_t<_Error>, unexpected)
7879
&& !_CCCL_TRAIT(is_same, remove_cvref_t<_Error>, in_place_t)
@@ -82,13 +83,15 @@ class unexpected
8283
: __unex_(_CUDA_VSTD::forward<_Error>(__error))
8384
{}
8485

86+
_CCCL_EXEC_CHECK_DISABLE
8587
_LIBCUDACXX_TEMPLATE(class... _Args)
8688
_LIBCUDACXX_REQUIRES(_CCCL_TRAIT(is_constructible, _Err, _Args...))
8789
_LIBCUDACXX_HIDE_FROM_ABI constexpr explicit unexpected(in_place_t, _Args&&... __args) noexcept(
8890
_CCCL_TRAIT(is_nothrow_constructible, _Err, _Args...))
8991
: __unex_(_CUDA_VSTD::forward<_Args>(__args)...)
9092
{}
9193

94+
_CCCL_EXEC_CHECK_DISABLE
9295
_LIBCUDACXX_TEMPLATE(class _Up, class... _Args)
9396
_LIBCUDACXX_REQUIRES(_CCCL_TRAIT(is_constructible, _Err, initializer_list<_Up>&, _Args...))
9497
_LIBCUDACXX_HIDE_FROM_ABI constexpr explicit unexpected(
@@ -123,13 +126,15 @@ class unexpected
123126
}
124127

125128
// [expected.un.swap]
129+
_CCCL_EXEC_CHECK_DISABLE
126130
_LIBCUDACXX_HIDE_FROM_ABI constexpr void swap(unexpected& __other) noexcept(_CCCL_TRAIT(is_nothrow_swappable, _Err))
127131
{
128132
static_assert(_CCCL_TRAIT(is_swappable, _Err), "E must be swappable");
129133
using _CUDA_VSTD::swap;
130134
swap(__unex_, __other.__unex_);
131135
}
132136

137+
_CCCL_EXEC_CHECK_DISABLE
133138
_LIBCUDACXX_TEMPLATE(class _Err2 = _Err)
134139
_LIBCUDACXX_REQUIRES(_CCCL_TRAIT(is_swappable, _Err2))
135140
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr void
@@ -140,6 +145,7 @@ class unexpected
140145
}
141146

142147
// [expected.un.eq]
148+
_CCCL_EXEC_CHECK_DISABLE
143149
template <class _UErr>
144150
_CCCL_NODISCARD_FRIEND _LIBCUDACXX_HIDE_FROM_ABI constexpr bool
145151
operator==(const unexpected& __lhs,
@@ -148,6 +154,7 @@ class unexpected
148154
return __lhs.error() == __rhs.error();
149155
}
150156
# if _CCCL_STD_VER < 2020
157+
_CCCL_EXEC_CHECK_DISABLE
151158
template <class _UErr>
152159
_CCCL_NODISCARD_FRIEND _LIBCUDACXX_HIDE_FROM_ABI constexpr bool
153160
operator!=(const unexpected& __lhs,

libcudacxx/include/cuda/std/__memory/construct_at.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
# ifndef __cpp_lib_constexpr_dynamic_alloc
5252
namespace std
5353
{
54+
_CCCL_EXEC_CHECK_DISABLE
5455
template <class _Tp,
5556
class... _Args,
5657
class = decltype(::new(_CUDA_VSTD::declval<void*>()) _Tp(_CUDA_VSTD::declval<_Args>()...))>

0 commit comments

Comments
 (0)