@@ -111,7 +111,7 @@ namespace exec {
111
111
}
112
112
113
113
template <__decays_to<__t > _Self, class _Env >
114
- STDEXEC_MEMFN_DECL ( auto get_completion_signatures)( this _Self&&, _Env&&)
114
+ static auto get_completion_signatures ( _Self&&, _Env&&)
115
115
-> completion_signatures_of_t<__copy_cvref_t<_Self, _Constrained>, __env_t<_Env>> {
116
116
return {};
117
117
}
@@ -252,7 +252,7 @@ namespace exec {
252
252
}
253
253
254
254
template <__decays_to<__t > _Self, class _Env >
255
- STDEXEC_MEMFN_DECL ( auto get_completion_signatures)( this _Self&&, _Env&&)
255
+ static auto get_completion_signatures ( _Self&&, _Env&&)
256
256
-> completion_signatures_of_t<__copy_cvref_t<_Self, _Constrained>, __env_t<_Env>> {
257
257
return {};
258
258
}
@@ -598,7 +598,15 @@ namespace exec {
598
598
using _Sender = stdexec::__t <_SenderId>;
599
599
using _Env = stdexec::__t <_EnvId>;
600
600
601
- struct __t {
601
+ class __t {
602
+ template <class _Self >
603
+ using __completions_t = __future_completions_t <__mfront<_Sender, _Self>, _Env>;
604
+
605
+ template <class _Receiver >
606
+ using __future_op_t =
607
+ stdexec::__t <__future_op<_SenderId, _EnvId, stdexec::__id<_Receiver>>>;
608
+
609
+ public:
602
610
using __id = __future;
603
611
using sender_concept = stdexec::sender_t ;
604
612
@@ -619,20 +627,6 @@ namespace exec {
619
627
__guard, __future_step::__future, __future_step::__no_future);
620
628
}
621
629
}
622
- private:
623
- friend struct async_scope ;
624
- template <class _Self >
625
- using __completions_t = __future_completions_t <__mfront<_Sender, _Self>, _Env>;
626
-
627
- template <class _Receiver >
628
- using __future_op_t =
629
- stdexec::__t <__future_op<_SenderId, _EnvId, stdexec::__id<_Receiver>>>;
630
-
631
- explicit __t (std::unique_ptr<__future_state<_Sender, _Env>> __state) noexcept
632
- : __state_(std::move(__state)) {
633
- std::unique_lock __guard{__state_->__mutex_ };
634
- __state_->__step_from_to_ (__guard, __future_step::__created, __future_step::__future);
635
- }
636
630
637
631
template <__decays_to<__t > _Self, receiver _Receiver>
638
632
requires receiver_of<_Receiver, __completions_t <_Self>>
@@ -642,10 +636,19 @@ namespace exec {
642
636
}
643
637
644
638
template <__decays_to<__t > _Self, class _OtherEnv >
645
- STDEXEC_MEMFN_DECL ( auto get_completion_signatures)( this _Self&&, _OtherEnv&&) -> __completions_t <_Self> {
639
+ static auto get_completion_signatures ( _Self&&, _OtherEnv&&) -> __completions_t<_Self> {
646
640
return {};
647
641
}
648
642
643
+ private:
644
+ friend struct async_scope ;
645
+
646
+ explicit __t (std::unique_ptr<__future_state<_Sender, _Env>> __state) noexcept
647
+ : __state_(std::move(__state)) {
648
+ std::unique_lock __guard{__state_->__mutex_ };
649
+ __state_->__step_from_to_ (__guard, __future_step::__created, __future_step::__future);
650
+ }
651
+
649
652
std::unique_ptr<__future_state<_Sender, _Env>> __state_;
650
653
};
651
654
};
0 commit comments