@@ -30,9 +30,7 @@ Should require the expressions to have type `void`,
3030rather than just discarding anything that is returned.
3131</p >
3232
33- </discussion >
34-
35- <resolution >
33+ <superseded >
3634<p >
3735This wording is relative to <paper num =" N4988" />.
3836</p >
@@ -90,6 +88,78 @@ expression-equivalent to <tt><i>MANDATE-NOTHROW</i>(<ins>void(</ins>op.start()<i
9088</li >
9189</ol >
9290
91+ </superseded >
92+
93+ <note >2026-03-27; Tim provides new wording</note >
94+
95+ </discussion >
96+
97+ <resolution >
98+
99+ <p >
100+ This wording is relative to <paper num =" N4988" />.
101+ </p >
102+
103+ <ol >
104+ <li ><p >Modify <sref ref =" [exec.set.value]" /> as indicated:</p >
105+
106+ <blockquote >
107+ <p >
108+ -1- <tt >set_value</tt > is a value completion function (<sref ref =" [exec.async.ops]" />).
109+ Its associated completion tag is <tt >set_value_t</tt >. The expression <tt >set_value(rcvr, vs...)</tt >
110+ for a subexpression <tt >rcvr</tt > and pack of subexpressions <tt >vs</tt > is ill-formed if
111+ <tt >rcvr</tt > is an lvalue or an rvalue of const type. Otherwise, it is expression-equivalent to
112+ <tt ><i >MANDATE-NOTHROW</i >(rcvr.set_value(vs...))</tt >.
113+ <p />
114+ <ins ><i >Mandates</i >: If the expression above is well-formed, its type is `void`.</ins >
115+ </p >
116+ </blockquote >
117+ </li >
118+
119+ <li ><p >Modify <sref ref =" [exec.set.error]" /> as indicated:</p >
120+
121+ <blockquote >
122+ <p >
123+ -1- <tt >set_error</tt > is an error completion function (<sref ref =" [exec.async.ops]" />).
124+ Its associated completion tag is <tt >set_error_t</tt >. The expression <tt >set_error(rcvr, err)</tt >
125+ for some subexpressions <tt >rcvr</tt > and <tt >err</tt > is ill-formed if <tt >rcvr</tt > is an
126+ lvalue or an rvalue of const type. Otherwise, it is expression-equivalent to
127+ <tt ><i >MANDATE-NOTHROW</i >(rcvr.set_error(err))</tt >.
128+ <p />
129+ <ins ><i >Mandates</i >: If the expression above is well-formed, its type is `void`.</ins >
130+ </p >
131+ </blockquote >
132+ </li >
133+
134+ <li ><p >Modify <sref ref =" [exec.set.stopped]" /> as indicated:</p >
135+
136+ <blockquote >
137+ <p >
138+ -1- <tt >set_stopped</tt > is a stopped completion function (<sref ref =" [exec.async.ops]" />).
139+ Its associated completion tag is <tt >set_stopped_t</tt >. The expression <tt >set_stopped(rcvr)</tt >
140+ for a subexpression <tt >rcvr</tt > is ill-formed if <tt >rcvr</tt > is an lvalue or an rvalue of
141+ const type. Otherwise, it is expression-equivalent to
142+ <tt ><i >MANDATE-NOTHROW</i >(rcvr.set_stopped())</tt >.
143+ <p />
144+ <ins ><i >Mandates</i >: If the expression above is well-formed, its type is `void`.</ins >
145+ </p >
146+ </blockquote >
147+ </li >
148+
149+ <li ><p >Modify <sref ref =" [exec.opstate.start]" /> as indicated:</p >
150+
151+ <blockquote >
152+ <p >
153+ -1- The name <tt >start</tt > denotes a customization point object that starts (<sref ref =" [exec.async.ops]" />)
154+ the asynchronous operation associated with the operation state object. For a subexpression <tt >op</tt >,
155+ the expression <tt >start(op)</tt > is ill-formed if <tt >op</tt > is an rvalue. Otherwise, it is
156+ expression-equivalent to <tt ><i >MANDATE-NOTHROW</i >(op.start())</tt >.
157+ <p />
158+ <ins ><i >Mandates</i >: If the expression above is well-formed, its type is `void`.</ins >
159+ </p >
160+ </blockquote >
161+ </li >
162+ </ol >
93163</resolution >
94164
95165</issue >
0 commit comments