首页 > 解决方案 > boost asio stackless corotines - 基于开关的宏黑客如何工作?

问题描述

我指的是asio单头无堆栈协程实现
代码基于宏hackery以实现类似状态机的流程,但我不完全了解它是如何工作的

例子

#define ASIO_CORO_REENTER(c) \
  switch (::asio::detail::coroutine_ref _coro_value = c) \
    case -1: if (_coro_value) \
    { \
      goto terminate_coroutine; \
      terminate_coroutine: \
      _coro_value = -1; \
      goto bail_out_of_coroutine; \
      bail_out_of_coroutine: \
      break; \
    } \
    else /* fall-through */ case 0:  

标签: c++boostcoroutineasio

解决方案


推荐阅读