一个现代C++协程库,提供简单易用的异步编程接口。
- 基于C++20协程标准实现
- 提供Task模板类支持异步操作
- 支持异常处理和错误传播
- 简洁的API设计
- 支持void返回类型的协程
- C++20或更高版本
- 支持协程的编译器(如GCC 10+、Clang 11+、MSVC 2019+)
- CMake 3.15或更高版本
#include <modern_coroutine/coroutine.hpp> #include <iostream> #include <chrono> #include <thread> using namespace modern_coroutine; // 创建一个异步操作 Task<int> async_operation(int value) { std::this_thread::sleep_for(std::chrono::seconds(1)); co_return value * 2; } // 组合多个异步操作 Task<int> combined_operations() { auto task1 = async_operation(10); while (task1.resume()) {} int result1 = task1.get_result(); auto task2 = async_operation(result1); while (task2.resume()) {} int result2 = task2.get_result(); co_return result2; } int main() { auto task = combined_operations(); while (task.resume()) {} std::cout << "结果: " << task.get_result() << std::endl; return 0; }
# 创建构建目录 mkdir build && cd build # 配置和构建 cmake .. make # 运行示例 ./examples/basic_example