Skip to content

Commit b1839bf

Browse files
committed
[libcu++] Try to use the _CCCL_NODEBUG attribute more often
It greatly improves readability during debugging and also reduces binary size
1 parent 3a9ae70 commit b1839bf

123 files changed

Lines changed: 717 additions & 736 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

cudax/include/cuda/experimental/__detail/type_traits.cuh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ template <class... _As>
109109
_CCCL_CONCEPT __nothrow_copyable = (::cuda::std::is_nothrow_copy_constructible_v<_As> && ...);
110110

111111
template <class... _As>
112-
using __nothrow_decay_copyable_t _CCCL_NODEBUG_ALIAS = ::cuda::std::bool_constant<__nothrow_decay_copyable<_As...>>;
112+
using __nothrow_decay_copyable_t _CCCL_NODEBUG = ::cuda::std::bool_constant<__nothrow_decay_copyable<_As...>>;
113113

114114
using ::cuda::std::__call_result_t;
115115
} // namespace cuda::experimental

cudax/include/cuda/experimental/__execution/apply_sender.cuh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ private:
4545
//! @tparam _Domain The domain to check.
4646
//! @tparam _Args The arguments to validate against the domain.
4747
template <class _Domain, class... _Args>
48-
using __apply_domain_t _CCCL_NODEBUG_ALIAS = ::cuda::std::
48+
using __apply_domain_t _CCCL_NODEBUG = ::cuda::std::
4949
_If<::cuda::std::_IsValidExpansion<__apply_sender_result_t, _Domain, _Args...>::value, _Domain, default_domain>;
5050

5151
public:
@@ -68,7 +68,7 @@ public:
6868
_Tag{}, static_cast<_Sndr&&>(__sndr), static_cast<_Args&&>(__args)...)))
6969
-> __apply_sender_result_t<__apply_domain_t<_Domain, _Tag, _Sndr, _Args...>, _Tag, _Sndr, _Args...>
7070
{
71-
using __dom_t _CCCL_NODEBUG_ALIAS = __apply_domain_t<_Domain, _Tag, _Sndr, _Args...>;
71+
using __dom_t _CCCL_NODEBUG = __apply_domain_t<_Domain, _Tag, _Sndr, _Args...>;
7272
//! Calls the algorithm specified by _Tag using the determined domain.
7373
return __dom_t{}.apply_sender(_Tag{}, static_cast<_Sndr&&>(__sndr), static_cast<_Args&&>(__args)...);
7474
}

cudax/include/cuda/experimental/__execution/completion_signatures.cuh

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,14 @@ template <class... _ValueTuples, class... _Errors, class... _Stopped>
5757
struct __partitioned_completions<__type_list<_ValueTuples...>, __type_list<_Errors...>, __type_list<_Stopped...>>
5858
{
5959
template <template <class...> class _Tuple, template <class...> class _Variant>
60-
using __value_types _CCCL_NODEBUG_ALIAS =
60+
using __value_types _CCCL_NODEBUG =
6161
_Variant<::cuda::std::__type_call1<_ValueTuples, ::cuda::std::__type_quote<_Tuple>>...>;
6262

6363
template <template <class...> class _Variant, template <class...> class _Transform = ::cuda::std::__type_self_t>
64-
using __error_types _CCCL_NODEBUG_ALIAS = _Variant<_Transform<_Errors>...>;
64+
using __error_types _CCCL_NODEBUG = _Variant<_Transform<_Errors>...>;
6565

6666
template <template <class...> class _Variant, class _Type = set_stopped_t()>
67-
using __stopped_types _CCCL_NODEBUG_ALIAS = _Variant<__type_second<_Stopped, _Type>...>;
67+
using __stopped_types _CCCL_NODEBUG = _Variant<__type_second<_Stopped, _Type>...>;
6868

6969
using __count_values = ::cuda::std::integral_constant<size_t, sizeof...(_ValueTuples)>;
7070
using __count_errors = ::cuda::std::integral_constant<size_t, sizeof...(_Errors)>;
@@ -124,37 +124,37 @@ template <class _Partitioned>
124124
_CCCL_HOST_DEVICE_API auto __unpack_partitioned_completions(::cuda::std::__undefined<_Partitioned>&) -> _Partitioned;
125125

126126
template <class... _Sigs>
127-
using __partition_completion_signatures_t _CCCL_NODEBUG_ALIAS = //
127+
using __partition_completion_signatures_t _CCCL_NODEBUG = //
128128
decltype(execution::__unpack_partitioned_completions(
129129
(declval<::cuda::std::__undefined<__partitioned_completions<>>&>() * ... * static_cast<_Sigs*>(nullptr))));
130130

131131
template <class _Completions>
132-
using __partitioned_completions_of_t _CCCL_NODEBUG_ALIAS = typename _Completions::__partitioned::type;
132+
using __partitioned_completions_of_t _CCCL_NODEBUG = typename _Completions::__partitioned::type;
133133

134134
////////////////////////////////////////////////////////////////////////////////////////////////////
135135
// completion signatures type traits
136136
template <class _Sigs, template <class...> class _Tuple, template <class...> class _Variant>
137-
using __value_types _CCCL_NODEBUG_ALIAS =
137+
using __value_types _CCCL_NODEBUG =
138138
typename __partitioned_completions_of_t<_Sigs>::template __value_types<_Tuple, _Variant>;
139139

140140
template <class _Sndr, class _Env, template <class...> class _Tuple, template <class...> class _Variant>
141-
using value_types_of_t _CCCL_NODEBUG_ALIAS =
141+
using value_types_of_t _CCCL_NODEBUG =
142142
__value_types<completion_signatures_of_t<_Sndr, _Env>,
143143
::cuda::std::__type_indirect_quote<_Tuple>::template __call,
144144
::cuda::std::__type_indirect_quote<_Variant>::template __call>;
145145

146146
template <class _Sigs,
147147
template <class...> class _Variant,
148148
template <class...> class _Transform = ::cuda::std::__type_self_t>
149-
using __error_types _CCCL_NODEBUG_ALIAS =
149+
using __error_types _CCCL_NODEBUG =
150150
typename __partitioned_completions_of_t<_Sigs>::template __error_types<_Variant, _Transform>;
151151

152152
template <class _Sndr, class _Env, template <class...> class _Variant>
153-
using error_types_of_t _CCCL_NODEBUG_ALIAS =
153+
using error_types_of_t _CCCL_NODEBUG =
154154
__error_types<completion_signatures_of_t<_Sndr, _Env>, ::cuda::std::__type_indirect_quote<_Variant>::template __call>;
155155

156156
template <class _Sigs, template <class...> class _Variant, class _Type = set_stopped_t()>
157-
using __stopped_types _CCCL_NODEBUG_ALIAS =
157+
using __stopped_types _CCCL_NODEBUG =
158158
typename __partitioned_completions_of_t<_Sigs>::template __stopped_types<_Variant, _Type>;
159159

160160
template <class _Sigs>
@@ -187,7 +187,7 @@ _CCCL_HOST_DEVICE_API auto __make_unique(_Sigs*...)
187187
-> ::cuda::std::__type_apply<::cuda::std::__type_quote<completion_signatures>, ::cuda::std::__make_type_set<_Sigs...>>;
188188

189189
template <class... _Sigs>
190-
using __make_completion_signatures_t _CCCL_NODEBUG_ALIAS =
190+
using __make_completion_signatures_t _CCCL_NODEBUG =
191191
decltype(execution::__make_unique(execution::__normalize(static_cast<_Sigs*>(nullptr))...));
192192

193193
template <class... _ExplicitSigs, class... _DeducedSigs>
@@ -202,7 +202,7 @@ template <class... _ExplicitSigs, class... _DeducedSigs>
202202
struct __concat_completion_signatures_impl;
203203

204204
template <class... _Sigs>
205-
using __concat_completion_signatures_t _CCCL_NODEBUG_ALIAS =
205+
using __concat_completion_signatures_t _CCCL_NODEBUG =
206206
__call_result_t<__call_result_t<__concat_completion_signatures_impl, const _Sigs&...>>;
207207

208208
struct __concat_completion_signatures_fn
@@ -244,8 +244,8 @@ struct __concat_completion_signatures_impl
244244
const completion_signatures<_Ds...>& = __empty_completion_signatures,
245245
const _Rest&...) const noexcept
246246
{
247-
using _Tmp = completion_signatures<_As..., _Bs..., _Cs..., _Ds...>;
248-
using _SigsFnPtr _CCCL_NODEBUG_ALIAS = __call_result_t<_Self, const _Tmp&, const _Rest&...>;
247+
using _Tmp = completion_signatures<_As..., _Bs..., _Cs..., _Ds...>;
248+
using _SigsFnPtr _CCCL_NODEBUG = __call_result_t<_Self, const _Tmp&, const _Rest&...>;
249249
return static_cast<_SigsFnPtr>(nullptr);
250250
}
251251

@@ -337,35 +337,34 @@ struct _CCCL_TYPE_VISIBILITY_DEFAULT completion_signatures
337337
{
338338
// This is defined in a nested struct to avoid computing these types if they are not
339339
// needed.
340-
using type _CCCL_NODEBUG_ALIAS = __partition_completion_signatures_t<_Sigs...>;
340+
using type _CCCL_NODEBUG = __partition_completion_signatures_t<_Sigs...>;
341341
};
342342

343343
//! @brief Type set view of the completion signatures for set operations.
344344
struct __type_set
345345
{
346346
// This is defined in a nested struct to avoid computing this type if it is not
347347
// needed.
348-
using type _CCCL_NODEBUG_ALIAS = ::cuda::std::__make_type_set<_Sigs...>;
348+
using type _CCCL_NODEBUG = ::cuda::std::__make_type_set<_Sigs...>;
349349
};
350350

351351
//! @brief Applies a metafunction to each signature and collects the results.
352352
//! @tparam _Fn The metafunction to apply.
353353
//! @tparam _Continuation The template to collect results into.
354354
template <template <class...> class _Fn, template <class...> class _Continuation = __completion_signatures>
355-
using __transform_q _CCCL_NODEBUG_ALIAS = _Continuation<::cuda::std::__type_apply_q<_Fn, _Sigs>...>;
355+
using __transform_q _CCCL_NODEBUG = _Continuation<::cuda::std::__type_apply_q<_Fn, _Sigs>...>;
356356

357357
//! @brief Applies a callable metafunction to each signature and collects the results.
358358
//! @tparam _Fn The callable metafunction to apply.
359359
//! @tparam _Continuation The template to collect results into.
360360
template <class _Fn, class _Continuation = ::cuda::std::__type_quote<__completion_signatures>>
361-
using __transform _CCCL_NODEBUG_ALIAS =
362-
::cuda::std::__type_call<_Continuation, ::cuda::std::__type_apply<_Fn, _Sigs>...>;
361+
using __transform _CCCL_NODEBUG = ::cuda::std::__type_call<_Continuation, ::cuda::std::__type_apply<_Fn, _Sigs>...>;
363362

364363
//! @brief Calls a metafunction with the signatures as arguments.
365364
//! @tparam _Fn The metafunction to call.
366365
//! @tparam _More Additional arguments to pass.
367366
template <class _Fn, class... _More>
368-
using __call _CCCL_NODEBUG_ALIAS = ::cuda::std::__type_call<_Fn, _More..., _Sigs...>;
367+
using __call _CCCL_NODEBUG = ::cuda::std::__type_call<_Fn, _More..., _Sigs...>;
369368

370369
//! @brief Default constructor.
371370
_CCCL_HIDE_FROM_ABI constexpr completion_signatures() = default;
@@ -574,25 +573,25 @@ template <>
574573
struct __gather_sigs_fn<set_value_t>
575574
{
576575
template <class _Sigs, template <class...> class _Tuple, template <class...> class _Variant>
577-
using __call _CCCL_NODEBUG_ALIAS = __value_types<_Sigs, _Tuple, _Variant>;
576+
using __call _CCCL_NODEBUG = __value_types<_Sigs, _Tuple, _Variant>;
578577
};
579578

580579
template <>
581580
struct __gather_sigs_fn<set_error_t>
582581
{
583582
template <class _Sigs, template <class...> class _Tuple, template <class...> class _Variant>
584-
using __call _CCCL_NODEBUG_ALIAS = __error_types<_Sigs, _Variant, _Tuple>;
583+
using __call _CCCL_NODEBUG = __error_types<_Sigs, _Variant, _Tuple>;
585584
};
586585

587586
template <>
588587
struct __gather_sigs_fn<set_stopped_t>
589588
{
590589
template <class _Sigs, template <class...> class _Tuple, template <class...> class _Variant>
591-
using __call _CCCL_NODEBUG_ALIAS = __stopped_types<_Sigs, _Variant, _Tuple<>>;
590+
using __call _CCCL_NODEBUG = __stopped_types<_Sigs, _Variant, _Tuple<>>;
592591
};
593592

594593
template <class _Sigs, class _WantedTag, template <class...> class _Tuple, template <class...> class _Variant>
595-
using __gather_completion_signatures _CCCL_NODEBUG_ALIAS =
594+
using __gather_completion_signatures _CCCL_NODEBUG =
596595
typename __gather_sigs_fn<_WantedTag>::template __call<_Sigs, _Tuple, _Variant>;
597596

598597
////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -622,10 +621,10 @@ template <bool _PotentiallyThrowing>
622621
}
623622
}
624623

625-
using __eptr_completion_t _CCCL_NODEBUG_ALIAS = decltype(execution::__eptr_completion());
624+
using __eptr_completion_t _CCCL_NODEBUG = decltype(execution::__eptr_completion());
626625

627626
template <bool _PotentiallyThrowing>
628-
using __eptr_completion_if_t _CCCL_NODEBUG_ALIAS = decltype(execution::__eptr_completion_if<_PotentiallyThrowing>());
627+
using __eptr_completion_if_t _CCCL_NODEBUG = decltype(execution::__eptr_completion_if<_PotentiallyThrowing>());
629628

630629
////////////////////////////////////////////////////////////////////////////////////////////////////
631630
// invalid_completion_signature

cudax/include/cuda/experimental/__execution/conditional.cuh

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ struct _CCCL_TYPE_VISIBILITY_DEFAULT conditional_t
7676
}
7777

7878
template <class... _As>
79-
using __just_from_t _CCCL_NODEBUG_ALIAS = decltype(just_from(conditional_t::__mk_complete_fn(declval<_As>()...)));
79+
using __just_from_t _CCCL_NODEBUG = decltype(just_from(conditional_t::__mk_complete_fn(declval<_As>()...)));
8080

8181
template <class _Pred, class _Then, class _Else, class... _Env>
8282
struct __either_sig_fn
@@ -117,7 +117,7 @@ struct _CCCL_TYPE_VISIBILITY_DEFAULT conditional_t
117117
::cuda::std::__type_list<connect_result_t<__call_result_t<_Then, __just_from_t<_As...>>, __rcvr_ref_t<_Rcvr>>,
118118
connect_result_t<__call_result_t<_Else, __just_from_t<_As...>>, __rcvr_ref_t<_Rcvr>>>;
119119

120-
using __next_ops_variant_t _CCCL_NODEBUG_ALIAS =
120+
using __next_ops_variant_t _CCCL_NODEBUG =
121121
__value_types<_Completions, __opstate_list_t, __type_concat_into_quote<__variant>::__call>;
122122

123123
_Rcvr __rcvr_;
@@ -201,7 +201,7 @@ struct _CCCL_TYPE_VISIBILITY_DEFAULT conditional_t
201201

202202
public:
203203
template <class _Pred, class _Then, class _Else>
204-
using params _CCCL_NODEBUG_ALIAS = __closure_base_t<_Pred, _Then, _Else>;
204+
using params _CCCL_NODEBUG = __closure_base_t<_Pred, _Then, _Else>;
205205

206206
template <class _Params, class _Sndr>
207207
struct _CCCL_TYPE_VISIBILITY_DEFAULT __sndr_t;
@@ -216,7 +216,7 @@ public:
216216
template <class _Pred, class _Then, class _Else, class _Sndr>
217217
struct _CCCL_TYPE_VISIBILITY_DEFAULT conditional_t::__sndr_t<conditional_t::__closure_base_t<_Pred, _Then, _Else>, _Sndr>
218218
{
219-
using __params_t _CCCL_NODEBUG_ALIAS = conditional_t::__closure_base_t<_Pred, _Then, _Else>;
219+
using __params_t _CCCL_NODEBUG = conditional_t::__closure_base_t<_Pred, _Then, _Else>;
220220
/*_CCCL_NO_UNIQUE_ADDRESS*/ conditional_t __tag_;
221221
__params_t __params_;
222222
_Sndr __sndr_;
@@ -293,7 +293,7 @@ template <class _Sndr, class _Pred, class _Then, class _Else>
293293
_CCCL_HOST_DEVICE_API constexpr auto
294294
conditional_t::operator()(_Sndr __sndr, _Pred __pred, _Then __then, _Else __else) const
295295
{
296-
using __params_t _CCCL_NODEBUG_ALIAS = __closure_base_t<_Pred, _Then, _Else>;
296+
using __params_t _CCCL_NODEBUG = __closure_base_t<_Pred, _Then, _Else>;
297297
__params_t __params{static_cast<_Pred&&>(__pred), static_cast<_Then&&>(__then), static_cast<_Else&&>(__else)};
298298
return static_cast<__params_t&&>(__params)(static_cast<_Sndr&&>(__sndr));
299299
}

cudax/include/cuda/experimental/__execution/continues_on.cuh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ struct _CCCL_TYPE_VISIBILITY_DEFAULT continues_on_t
151151
template <class _Tag, class... _As>
152152
_CCCL_HOST_DEVICE_API void __set_result(_Tag, _As&&... __as) noexcept
153153
{
154-
using __tupl_t _CCCL_NODEBUG_ALIAS = ::cuda::std::__tuple<_Tag, decay_t<_As>...>;
154+
using __tupl_t _CCCL_NODEBUG = ::cuda::std::__tuple<_Tag, decay_t<_As>...>;
155155
_CCCL_TRY
156156
{
157157
__state_->__result_.template __emplace<__tupl_t>(_Tag{}, static_cast<_As&&>(__as)...);
@@ -197,9 +197,9 @@ struct _CCCL_TYPE_VISIBILITY_DEFAULT continues_on_t
197197
template <class _Sch, class _CvSndr, class _Rcvr>
198198
struct _CCCL_TYPE_VISIBILITY_DEFAULT __opstate_t
199199
{
200-
using operation_state_concept = operation_state_t;
201-
using __completions_t _CCCL_NODEBUG_ALIAS = completion_signatures_of_t<_CvSndr, __fwd_env_t<env_of_t<_Rcvr>>>;
202-
using __results_t _CCCL_NODEBUG_ALIAS =
200+
using operation_state_concept = operation_state_t;
201+
using __completions_t _CCCL_NODEBUG = completion_signatures_of_t<_CvSndr, __fwd_env_t<env_of_t<_Rcvr>>>;
202+
using __results_t _CCCL_NODEBUG =
203203
typename __completions_t::template __transform_q<::cuda::std::__decayed_tuple, __variant>;
204204
using __rcvr_t = continues_on_t::__rcvr_t<_Rcvr, __results_t>;
205205
using __stash_rcvr_t = continues_on_t::__stash_rcvr_t<_Sch, _Rcvr, __results_t>;

cudax/include/cuda/experimental/__execution/diagnostics.cuh

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,17 +86,17 @@ struct _ERROR : __merror_base
8686
// The following aliases are to simplify error propagation
8787
// in the completion signatures meta-programming.
8888
template <class...>
89-
using __call _CCCL_NODEBUG_ALIAS = _ERROR;
89+
using __call _CCCL_NODEBUG = _ERROR;
9090

91-
using __partitioned _CCCL_NODEBUG_ALIAS = _ERROR;
91+
using __partitioned _CCCL_NODEBUG = _ERROR;
9292

9393
template <template <class...> class, template <class...> class>
94-
using __value_types _CCCL_NODEBUG_ALIAS = _ERROR;
94+
using __value_types _CCCL_NODEBUG = _ERROR;
9595

9696
template <template <class...> class>
97-
using __error_types _CCCL_NODEBUG_ALIAS = _ERROR;
97+
using __error_types _CCCL_NODEBUG = _ERROR;
9898

99-
using __sends_stopped _CCCL_NODEBUG_ALIAS = _ERROR;
99+
using __sends_stopped _CCCL_NODEBUG = _ERROR;
100100

101101
// The following operator overloads also simplify error propagation.
102102
_CCCL_HOST_DEVICE auto operator+() -> _ERROR;
@@ -132,7 +132,7 @@ inline constexpr bool __type_contains_error =
132132
#endif
133133

134134
template <class... _Ts>
135-
using __type_find_error _CCCL_NODEBUG_ALIAS = decltype(+(declval<_Ts&>(), ..., declval<_ERROR<_UNKNOWN>&>()));
135+
using __type_find_error _CCCL_NODEBUG = decltype(+(declval<_Ts&>(), ..., declval<_ERROR<_UNKNOWN>&>()));
136136

137137
template <class... _What>
138138
struct __not_a_sender

cudax/include/cuda/experimental/__execution/domain.cuh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
namespace cuda::experimental::execution
4545
{
4646
template <class _DomainOrTag, class... _Args>
47-
using __apply_sender_result_t _CCCL_NODEBUG_ALIAS = decltype(_DomainOrTag{}.apply_sender(declval<_Args>()...));
47+
using __apply_sender_result_t _CCCL_NODEBUG = decltype(_DomainOrTag{}.apply_sender(declval<_Args>()...));
4848

4949
// _DomainOrTag: eg, default_domain or then_t
5050
// _OpTag: either start_t or set_value_t
@@ -217,7 +217,7 @@ template <class _Env>
217217
_CCCL_DEDUCTION_GUIDE_ATTRIBUTES __hide_scheduler(_Env&&) -> __hide_scheduler<_Env>;
218218

219219
template <class _Sch, class... _Env>
220-
using __scheduler_domain_t _CCCL_NODEBUG_ALIAS = __call_result_t<get_completion_domain_t<set_value_t>, _Sch, _Env...>;
220+
using __scheduler_domain_t _CCCL_NODEBUG = __call_result_t<get_completion_domain_t<set_value_t>, _Sch, _Env...>;
221221

222222
//////////////////////////////////////////////////////////////////////////////////////////
223223
//! @brief A query type for asking a receiver's environment for its domain, which is an

cudax/include/cuda/experimental/__execution/env.cuh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ struct _CCCL_TYPE_VISIBILITY_DEFAULT __env_ref_fn
105105
} // namespace __detail
106106

107107
template <class _Env>
108-
using __env_ref_t _CCCL_NODEBUG_ALIAS = __call_result_t<__detail::__env_ref_fn, _Env>;
108+
using __env_ref_t _CCCL_NODEBUG = __call_result_t<__detail::__env_ref_fn, _Env>;
109109

110110
_CCCL_GLOBAL_CONSTANT __detail::__env_ref_fn __env_ref{};
111111

@@ -163,7 +163,7 @@ struct _CCCL_TYPE_VISIBILITY_DEFAULT __fwd_env_fn
163163
} // namespace __detail
164164

165165
template <class _Env>
166-
using __fwd_env_t _CCCL_NODEBUG_ALIAS = __call_result_t<__detail::__fwd_env_fn, _Env>;
166+
using __fwd_env_t _CCCL_NODEBUG = __call_result_t<__detail::__fwd_env_fn, _Env>;
167167

168168
_CCCL_GLOBAL_CONSTANT __detail::__fwd_env_fn __fwd_env{};
169169

@@ -284,7 +284,7 @@ struct __join_env_fn
284284
_CCCL_GLOBAL_CONSTANT __detail::__join_env_fn __join_env{};
285285

286286
template <class... _Envs>
287-
using __join_env_t _CCCL_NODEBUG_ALIAS = __call_result_t<__detail::__join_env_fn, _Envs...>;
287+
using __join_env_t _CCCL_NODEBUG = __call_result_t<__detail::__join_env_fn, _Envs...>;
288288
} // namespace execution
289289

290290
template <class... _Properties>

0 commit comments

Comments
 (0)