From Jason Turner

[exec.opstate.general]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpco_riy9q/{from.md → to.md} +28 -0
tmp/tmpco_riy9q/{from.md → to.md} RENAMED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ### General <a id="exec.opstate.general">[[exec.opstate.general]]</a>
2
+
3
+ The `operation_state` concept defines the requirements of an operation
4
+ state type [[exec.async.ops]].
5
+
6
+ ``` cpp
7
+ namespace std::execution {
8
+ template<class O>
9
+ concept operation_state =
10
+ derived_from<typename O::operation_state_concept, operation_state_t> &&
11
+ requires (O& o) {
12
+ start(o);
13
+ };
14
+ }
15
+ ```
16
+
17
+ If an `operation_state` object is destroyed during the lifetime of its
18
+ asynchronous operation [[exec.async.ops]], the behavior is undefined.
19
+
20
+ [*Note 1*: The `operation_state` concept does not impose requirements
21
+ on any operations other than destruction and `start`, including copy and
22
+ move operations. Invoking any such operation on an object whose type
23
+ models `operation_state` can lead to undefined behavior. — *end note*]
24
+
25
+ The program is ill-formed if it performs a copy or move construction or
26
+ assignment operation on an operation state object created by connecting
27
+ a library-provided sender.
28
+