@@ -117,7 +117,7 @@ namespace exec {
117117 struct _opstate_t {
118118 using operation_state_concept = stdexec::operation_state_t ;
119119 using _env_t = stdexec::__call_result_t <stdexec::__env::__fwd_fn, stdexec::env_of_t <Rcvr>>;
120- using _child_completions_t = stdexec::completion_signatures_of_t <Sndr, _env_t >;
120+ using _child_completions_t = stdexec::__completion_signatures_of_t <Sndr, _env_t >;
121121 using _domain_t = stdexec::__early_domain_of_t <Sndr, stdexec::__none_such>;
122122 using _when_all_sndr_t = fork_t ::_when_all_sndr_t <_child_completions_t , Closures, _domain_t >;
123123 using _child_opstate_t =
@@ -233,10 +233,12 @@ namespace exec {
233233 using namespace stdexec ;
234234 using _domain_t = __early_domain_of_t <Sndr, __none_such>;
235235 using _child_t = __copy_cvref_t <Self, Sndr>;
236- using _child_completions_t = completion_signatures_of_t <_child_t , __fwd_env_t <Env>...>;
236+ using _child_completions_t = __completion_signatures_of_t <_child_t , __fwd_env_t <Env>...>;
237237 using __decay_copyable_results_t = stdexec::__decay_copyable_results_t <_child_completions_t >;
238238
239- if constexpr (!__decay_copyable_results_t ::value) {
239+ if constexpr (!stdexec::__valid_completion_signatures<_child_completions_t >) {
240+ return _child_completions_t {};
241+ } else if constexpr (!__decay_copyable_results_t ::value) {
240242 return _ERROR_<
241243 _WHAT_<>(PREDECESSOR_RESULTS_ARE_NOT_DECAY_COPYABLE),
242244 _IN_ALGORITHM_ (exec::fork_t )>();
0 commit comments