boost提供的对称协程
symmetric_coroutine::call_type symmetric_coroutine::yield_type
与调用者和被调用者之间的关系是固定的非对称协程相反,对称协程能够将执行控制转移到任何其他(对称)协程。例如,对称协程不需要返回到它的直接调用者。
symmetry_coroutine::call_typesymmetry_coroutine::call_type启动一个对称协程并将其参数传递给它的coroutine-function。模板参数定义了传输的参数类型。symmetric_coroutine::call_type的构造函数接受一个函数( coroutine-function),接受一个对symmetric_coroutine::yield_type 的引用 作为参数。实例化一个symmetric_coroutine::call_type 不会将执行控制传递给coroutine-function - 相反, symmetric_coroutine::call_type::operator()的第一次调用 合成了一个symmetric_coroutine:: 并将其作为对coroutine-function 的引用传递。
该symmetric_coroutine :: CALL_TYPE接口不包含的get() -函数:你不能用这种协程对象的另一