Skip to content

Commit ad05ba2

Browse files
authored
New issue from Dietmar Kühl: Missing rvalue reference qualification for task::connect()
1 parent 242d10b commit ad05ba2

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

xml/issue4341.xml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<?xml version='1.0' encoding='utf-8' standalone='no'?>
2+
<!DOCTYPE issue SYSTEM "lwg-issue.dtd">
3+
4+
<issue num="4341" status="New">
5+
<title>Missing rvalue reference qualification for <code>task::connect()</code></title>
6+
<section><sref ref="[task.class]"/></section>
7+
<submitter>Dietmar Kühl</submitter>
8+
<date>31 Aug 2025</date>
9+
<priority>99</priority>
10+
11+
<discussion>
12+
<p>
13+
Coroutines can't be copied. Thus, a <code>task</code> can be
14+
<code>connect()</code> just once. To represent that
15+
<code>task::connect()</code> should be rvalue reference qualified
16+
but currently it isn't.
17+
</p>
18+
</discussion>
19+
20+
<resolution>
21+
<p>
22+
In the synopsis in <sref ref="[task.class]"/> add rvalue
23+
reference qualification to <code>task::connect()</code>:
24+
<blockquote><pre>
25+
namespace std::execution {
26+
template&lt;class T, class Environment&gt;
27+
class task {
28+
...
29+
template&lt;receiver Rcvr&gt;
30+
<i>state</i>&lt;Rcvr&gt; connect(Rcvr&amp;&amp; rcvr) <ins>&amp;&amp;</ins>;
31+
...
32+
}
33+
}
34+
</pre></blockquote>
35+
</p>
36+
<p>
37+
In the specification in <sref ref="[task.members]"/> paragraph 3 add rvalue
38+
reference qualification to <code>task::connect()</code>:
39+
<blockquote>
40+
<pre>
41+
template&lt;receiver Rcvr&gt;
42+
<i>state</i>&lt;Rcvr&gt; connect(Rcvr&amp;&amp; rcvr) <ins>&amp;&amp;</ins>;
43+
</pre>
44+
<p>-3- <i>Precondition</i>: <code>bool(handle)</code> is <code>true</code>.</p>
45+
<p>-4- <i>Effects</i>: Equivalent to:</p>
46+
<pre> return state&lt;Rcvr&gt;(exchange(handle, {}), std::forward&lt;Rcvr&gt;(recv));</pre>
47+
</blockquote>
48+
</p>
49+
</resolution>
50+
51+
</issue>

0 commit comments

Comments
 (0)