tmp/tmpbo6fca_b/{from.md → to.md}
RENAMED
|
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#### Class template `coroutine_traits` <a id="coroutine.traits.primary">[[coroutine.traits.primary]]</a>
|
| 2 |
+
|
| 3 |
+
The header `<coroutine>` defines the primary template `coroutine_traits`
|
| 4 |
+
such that if `ArgTypes` is a parameter pack of types and if the
|
| 5 |
+
*qualified-id* `R::promise_type` is valid and denotes a type
|
| 6 |
+
[[temp.deduct]], then `coroutine_traits<R,ArgTypes...>` has the
|
| 7 |
+
following publicly accessible member:
|
| 8 |
+
|
| 9 |
+
``` cpp
|
| 10 |
+
using promise_type = typename R::promise_type;
|
| 11 |
+
```
|
| 12 |
+
|
| 13 |
+
Otherwise, `coroutine_traits<R,ArgTypes...>` has no members.
|
| 14 |
+
|
| 15 |
+
Program-defined specializations of this template shall define a publicly
|
| 16 |
+
accessible nested type named `promise_type`.
|
| 17 |
+
|