|
Console Library 8.0.0
A header-only library that makes C++ simple
|
轻量级 C++ 协程/生成器宏实现。 More...
Go to the source code of this file.
Classes | |
| class | console::Coroutine< Ret(Args...)> |
Namespaces | |
| namespace | console |
| 本库所有组件所在的顶层命名空间。 | |
Macros | |
| #define | cr_begin(type, ...) |
| 开始一个协程/生成器函数。 | |
| #define | cr_yield(value) |
| 从协程中产生一个值并挂起执行。 | |
| #define | cr_return(value) |
| 从协程中返回值,并立刻终止协程。 | |
| #define | cr_throw(exception) |
| 从协程中抛出一个异常,并立刻终止协程。 | |
| #define | cr_end |
| 结束一个协程/生成器函数。 | |
轻量级 C++ 协程/生成器宏实现。
一个极度轻量、基于宏的状态机协程实现,仅占用一个 int 状态变量。 通过宏,将普通函数转换为可多次调用、每次产生一个值的生成器。 可以使用持久化变量保存状态,调用方在每次调用后得到下一个产出值。
| #define cr_begin | ( | type, | |
| ... ) |
开始一个协程/生成器函数。
该宏定义一个协程的起点。它初始化状态变量并返回一个可调用的 lambda 函数对象, 该对象在每次调用时根据内部状态继续执行协程。
| type | 协程的返回类型 (例如 int 或 double)。 |
| ... | 协程函数的参数列表 (例如 int a, int b)。 |
| #define cr_end |
结束一个协程/生成器函数。
该宏标记协程的结束。当协程执行完毕后再次被调用时, 抛出 StopIteration 异常。
| #define cr_return | ( | value | ) |
从协程中返回值,并立刻终止协程。
该宏保存当前执行位置 (通过 LINE),返回指定值给调用者。 协程会立刻被终止,下次调用协程时,将会得到 StopIteration。
| value | 要产生的值。 |
| #define cr_throw | ( | exception | ) |
从协程中抛出一个异常,并立刻终止协程。
该宏保存当前执行位置 (通过 LINE),抛出指定异常给调用者。 协程会立刻被终止,下次调用协程时,将会得到 StopIteration。
| exception | 要抛出的异常。 |