W3cubDocs

/C++

Coroutine support (C++20)

The coroutine support library defines several types that provide compile and run-time support for coroutines.

Coroutine traits

Defined in header <coroutine>
(C++20)
trait type for discovering coroutine promise types
(class template)

Coroutine handle

Defined in header <coroutine>
(C++20)
used to refer to a suspended or executing coroutine
(class template)

No-op coroutines

Defined in header <coroutine>
(C++20)
creates a coroutine handle that has no observable effects when resumed or destroyed
(function)
(C++20)
used for coroutines with no observable effects
(class)
(C++20)
std::coroutine_handle<std::noop_coroutine_promise>, intended to refer to a no-op coroutine
(typedef)

Trivial awaitables

Defined in header <coroutine>
(C++20)
indicates that an await-expression should never suspend
(class)
(C++20)
indicates that an await-expression should always suspend
(class)

Notes

Feature-test macro Value Std Comment
__cpp_impl_coroutine 201902L (C++20) Coroutines (compiler support)
__cpp_lib_coroutine 201902L (C++20) Coroutines (library support)
__cpp_lib_generator 202207L (C++23) std::generator: synchronous coroutine generator for ranges

See also

(C++23)
A view that represents synchronous coroutine generator
(class template)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/coroutine