[#] [Из песочницы] Возражения против принятия Coroutines с await в C++17
habrabot(difrex,1) — All
2016-03-01 15:30:03


Недавно Россию посетила группа экспертов С++, участвующих в работе комитета по стандартизации. 25 февраля они участвовали в Q&A сессии, организованной Яндексом, а после выступали на конференции С++ Russia 2016. Одним из них был Гор Нишанов, автор предложения о включении C#-подобных сопрограмм (те которые async/await) в стандарт С++17. Ранее Гор выступал на CppCon 2015 с докладом "[С++ Сопрограммы — Абстракция с отрицательным оверхедом][1]". Такая возможность структурировать асинхронный код выглядит привлекательно, Гор в докладе убедительно показывает, что количество кода сокращается, а скорость работы возрастает по сравнению с «рукописными» State Machine. Кроме того, это одно из самых больших потенциальных изменений в следующем стандарте и привлекает к себе внимание. Судя по публикациям, proposal получил значительное одобрение и комитет склоняется к включению в стандарт. После этого я был весьма удивлен, когда загуглив упомянутый [proposal P0057][2], получил в выдаче встречный документ "[Coroutines belong in a TS][3]", который подвергает предлагаемую реализацию сопрограмм жесткой и весьма эмоциональной критике и требует не включать в С++17, а отложить для «обкатки» в Technical Specification. Отмечу, что не являюсь сторонником этих возражений, а приглашаю интересующихся к обсуждению, насколько обоснованны перечисленные претензии и все ли так плохо. Под катом «выжимка» из документа с небольшими комментариями. [Читать дальше →][4]

[1]: https://www.youtube.com/watch?v=_fu0gx-xseY
[2]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0057r2.pdf
[3]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0158r0.html
[4]: https://habrahabr.ru/post/278267/#habracut