File tree Expand file tree Collapse file tree 1 file changed +24
-5
lines changed
Expand file tree Collapse file tree 1 file changed +24
-5
lines changed Original file line number Diff line number Diff line change @@ -52,15 +52,34 @@ namespace
5252 static bool g_called = false ;
5353
5454 template <class Sndr >
55- struct opaque_sender : private Sndr
55+ struct opaque_sender
5656 {
5757 using sender_concept = ex::sender_tag;
58+
5859 explicit opaque_sender (Sndr sndr)
59- : Sndr {std::move (sndr)}
60+ : sndr_ {std::move (sndr)}
6061 {}
61- using Sndr::connect;
62- using Sndr::get_completion_signatures;
63- using Sndr::get_env;
62+
63+ template <class Rcvr >
64+ auto connect (Rcvr rcvr) &&
65+ {
66+ return std::move (sndr_).connect (std::move (rcvr));
67+ }
68+
69+ template <std::same_as<opaque_sender>, class ... Env>
70+ static consteval auto get_completion_signatures ()
71+ {
72+ return Sndr::template get_completion_signatures<Sndr, Env...>();
73+ }
74+
75+ [[nodiscard]]
76+ auto get_env () const noexcept -> ex::env_of_t<Sndr>
77+ {
78+ return ex::get_env (sndr_);
79+ }
80+
81+ private:
82+ Sndr sndr_;
6483 };
6584
6685 struct test_domain
You can’t perform that action at this time.
0 commit comments