`std::execution`,这是一个用于异步和并行编程的标准 C++ 框架。
std::execution ([exec]) 的参考实现,这是 C++26 中用于异步和并行编程的模型。stdexec 允许您将异步工作表示为可组合的、懒加载的 发送者 流程,这些流程可以在线程、线程池、GPU 或任何自定义执行上下文中运行 — 具有结构化并发性保证。
C++26 标准实现的 std::execution (P2300)。
仅包含头文件,无外部依赖。
可组合算法:then、let_value、when_all、bulk、split、transfer、upon_* 等。
结构化并发原语:async_scope、task、finally、when_any、repeat_n 等。
可插入的调度器:系统并行调度器、静态线程池、Linux io_uring 上下文、NVIDIA GPU 上下文、您自己的上下文。
GPU 卸载通过 nvexec 调度器实现(nvc++ 编译器)。
协程互操作:发送者可以被等待;等待者可以发送。
原语扩展(<exec/...>)用于标准中尚未包含的原语。
| 编译器 | 最低版本 | 说明 |
|---|---|---|
| GCC | 12 | |
| Clang | 16 | |
| MSVC | 14.43 | |
| Xcode (Apple Clang) | 16 | |
| nvc++ | 25.9 | 仅适用于 GPU 支持 |
需要 -std=c++20 或更高版本。
暂无开放 Issues,或尚未同步最近议题。