tmp/tmpgwq7kcer/{from.md → to.md}
RENAMED
|
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
### Header `<coroutine>` synopsis <a id="coroutine.syn">[[coroutine.syn]]</a>
|
| 2 |
+
|
| 3 |
+
``` cpp
|
| 4 |
+
#include <compare> // see [compare.syn]
|
| 5 |
+
|
| 6 |
+
namespace std {
|
| 7 |
+
// [coroutine.traits], coroutine traits
|
| 8 |
+
template<class R, class... ArgTypes>
|
| 9 |
+
struct coroutine_traits;
|
| 10 |
+
|
| 11 |
+
// [coroutine.handle], coroutine handle
|
| 12 |
+
template<class Promise = void>
|
| 13 |
+
struct coroutine_handle;
|
| 14 |
+
|
| 15 |
+
// [coroutine.handle.compare], comparison operators
|
| 16 |
+
constexpr bool operator==(coroutine_handle<> x, coroutine_handle<> y) noexcept;
|
| 17 |
+
constexpr strong_ordering operator<=>(coroutine_handle<> x, coroutine_handle<> y) noexcept;
|
| 18 |
+
|
| 19 |
+
// [coroutine.handle.hash], hash support
|
| 20 |
+
template<class T> struct hash;
|
| 21 |
+
template<class P> struct hash<coroutine_handle<P>>;
|
| 22 |
+
|
| 23 |
+
// [coroutine.noop], no-op coroutines
|
| 24 |
+
struct noop_coroutine_promise;
|
| 25 |
+
|
| 26 |
+
template<> struct coroutine_handle<noop_coroutine_promise>;
|
| 27 |
+
using noop_coroutine_handle = coroutine_handle<noop_coroutine_promise>;
|
| 28 |
+
|
| 29 |
+
noop_coroutine_handle noop_coroutine() noexcept;
|
| 30 |
+
|
| 31 |
+
// [coroutine.trivial.awaitables], trivial awaitables
|
| 32 |
+
struct suspend_never;
|
| 33 |
+
struct suspend_always;
|
| 34 |
+
}
|
| 35 |
+
```
|
| 36 |
+
|