Namespaces
Variants
Views
Actions

Coroutine support (C++20)

From cppreference.com
< cpp
 
 
Utilities library
Language support
Type support (basic types, RTTI)
Library feature-test macros (C++20)
Dynamic memory management
Program utilities
Coroutine support (C++20)
Variadic functions
Debugging support
(C++26)
Three-way comparison
(C++20)
(C++20)(C++20)(C++20)
(C++20)(C++20)(C++20)
General utilities
Date and time
Function objects
Formatting library (C++20)
(C++11)
Relational operators (deprecated in C++20)
Integer comparison functions
(C++20)(C++20)(C++20)   
(C++20)
Swap and type operations
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Common vocabulary types
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Elementary string conversions
(C++17)
(C++17)

 
Coroutine support
Coroutine traits
Coroutine handle
No-op coroutines
Trivial awaitables
Range generators
(C++23)
 

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

Contents

[edit] Coroutine traits

Defined in header <coroutine>
trait type for discovering coroutine promise types
(class template) [edit]

[edit] Coroutine handle

Defined in header <coroutine>
used to refer to a suspended or executing coroutine
(class template) [edit]

[edit] No-op coroutines

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

[edit] Trivial awaitables

Defined in header <coroutine>
indicates that an await-expression should never suspend
(class) [edit]
indicates that an await-expression should always suspend
(class) [edit]

[edit] Notes

Feature-test macro Value Std Feature
__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

[edit] See also

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