1. Boost v1.59 之前是coroutine, 之后是coroutine2
2. 头文件路径
$(BOOST_DIR)\
#include <boost/coroutine2/all.hpp>
3. 库文件路径
$(BOOST_DIR)\libs;
$(BOOST_DIR)\stage\lib
3. 如果提示缺少 libboost_context-XXXX.lib,
可能是需要编译boost
编译方法:
(Win) $(BOOST_DIR)\boost\tools\\build\bootstrap.bat
生成bjam.exe, b2.exe
到 $(BOOST_DIR)\执行 tools\build\bjam.exe
如果只需要boost相关库,用
bjam.exe --with-XXXX
(列出所有需要编译的库, 用 bjam.exe --show-libraries )
4. 有两种协程对象,
协程对象在定义的时候开始运行,
当协程执行结束, 协程对象的 bool操作符返回false.
协程对象需要一个协程函数(函数对象)参数作为协程执行者。
(1)调用者可以获得数据的协程(生产者)
void fun(coroutine<X>::push_type& sink);
coroutine<X>::pull_type source(fun);
协程函数fun可以调用sink(x)将数据存放在协程对象

本文介绍了Boost库中的协程coroutine2,包括头文件和库文件路径设置,如何解决缺失库文件的问题,以及如何编译Boost。重点讲述了两种类型的协程对象——生产者和消费者的使用方式,并提供了示例代码。此外,还提到了腾讯的C++协程库libco和云风的C协程库coroutine作为参考。
最低0.47元/天 解锁文章
4686

被折叠的 条评论
为什么被折叠?



