@@ -21,6 +21,8 @@ class QThreadOperationState;
2121class QThreadScheduler
2222{
2323 public:
24+ using scheduler_concept = stdexec::scheduler_t ;
25+
2426 explicit QThreadScheduler (QThread *thread)
2527 : thread_(thread)
2628 {}
@@ -34,7 +36,7 @@ class QThreadScheduler
3436 {
3537 QThread *thread;
3638 template <typename CPO>
37- auto query (stdexec::get_completion_scheduler_t <CPO>) const noexcept
39+ auto query (stdexec::get_completion_scheduler_t <CPO>) const noexcept -> QThreadScheduler
3840 {
3941 return QThreadScheduler{thread};
4042 }
@@ -53,7 +55,7 @@ class QThreadScheduler
5355 class QThreadSender
5456 {
5557 public:
56- using is_sender = void ;
58+ using sender_concept = stdexec:: sender_t ;
5759 using completion_signatures =
5860 stdexec::completion_signatures<stdexec::set_value_t (), stdexec::set_error_t (std::exception_ptr)>;
5961
@@ -66,15 +68,15 @@ class QThreadScheduler
6668 return thread_;
6769 }
6870
69- DefaultEnv query (stdexec:: get_env_t ) const noexcept
71+ auto get_env ( ) const noexcept -> DefaultEnv
7072 {
7173 return {thread_};
7274 }
7375
74- template <class Recv >
75- QThreadOperationState<Recv > connect (Recv && receiver)
76+ template <class Receiver >
77+ QThreadOperationState<Receiver > connect (Receiver receiver)
7678 {
77- return QThreadOperationState<Recv >(std::forward<Recv> (receiver), thread ());
79+ return QThreadOperationState<Receiver >(std::move (receiver), thread ());
7880 }
7981
8082 private:
@@ -137,13 +139,13 @@ class QObjectSender
137139 }
138140 };
139141
140- DefaultEnv query ([[maybe_unused]] stdexec:: get_env_t env) noexcept
142+ auto get_env () const noexcept -> DefaultEnv
141143 {
142144 return {obj_->thread ()};
143145 }
144146
145147 public:
146- using is_sender = void ;
148+ using sender_concept = stdexec:: sender_t ;
147149 using completion_signatures = stdexec::completion_signatures<stdexec::set_value_t (Args...),
148150 stdexec::set_error_t (std::exception_ptr),
149151 stdexec::set_stopped_t()>;
0 commit comments