Pull to refresh
6
0
Send message
Да, действительно. Не знал. Привык, что cheap person — это обычно значит «человек без моральных принципов», ср. «дешевка».
Very cheap != Stingy. Stingy означает «скупой, прижимистый», а не «дешевый».
Я делал возвращаемое значение std:error_code. Использование std::experimental::future или boost::future — такой подход используется в blogs.msdn.microsoft.com/vcblog/2017/05/19/using-c-coroutines-with-boost-c-libraries, но я хочу этого избежать, потому что тогда будет либо синхронное ожидание (future::wait), либо then(), при использовании которого код уже менее близок к синхронному.
Я намеренно не объединял, чтобы показать проблему с расползанием co_await вверх по стеку. Если сделать do_write «нормальной корутиной», тогда придется убрать co_await do_write() в do_read() и вызывать просто do_write(). В результате новое чтение будет начинаться, не дожидаясь окончания записи. У меня есть такой вариант кода, вечером выложу.
Насколько я понял, «модель оберток» предпочли потому, что Boost.Context не переносимый и требует низкоуровневой реализации для каждой платформы. Возможно, играет роль и то, что Coroutines TS предложена Microsoft'ом.

Information

Rating
Does not participate
Registered
Activity