Как увеличить количество стеков в asio - как работает макрокоманда на коммутаторе? - PullRequest
0 голосов
/ 20 января 2020

Я имею в виду asio сопрограмму без заголовка со стеком реализацию
Код основан на хакерской атаке макросов для достижения потока, подобного конечному автомату, но я не до конца понимаю, как он работает

Пример

#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:  
  • Почему на case -1 проверяется также значение _coro_value? не правда ли ДОЛЖЕН быть равен -1?
...