Почему сопрограммы (на данный момент в новейших черновиках для C++ 1z) будут реализованы как функция основного языка (причудливые ключевые слова и все), а не расширение библиотеки?C++ 1z Coroutines - функция языка?
Существует уже несколько реализаций для них (Boost.Coroutine и т. Д.), Некоторые из которых могут быть сделаны независимыми от платформы, из того, что я прочитал. Почему комитет решил испечь его на основной язык?
Я не говорю, что они не должны, но сам Бьярне Страуструп упоминал в некоторых разговорах (не знаю, какой из них больше), что новые функции должны быть реализованы в библиотеках, насколько это возможно, а не касаться основного языка.
Так есть ли веская причина для этого? Каковы преимущества?
Я не знаю, как boost: сопрограммы работают, и если они предлагают одну и ту же семантику, но я предполагаю, что сопрограммы могут быть реализованы гораздо эффективнее, чем функция языка, чем функция библиотеки. Кроме того, я не совсем уверен, действительно ли сопрограммы могут быть реализованы с использованием только стандартного C++. – MikeMB
@MikeMB: Исправьте все учетные записи. – ildjarn
Еще одна причина может заключаться в том, что это всего лишь способ лучше, чем часть языка (например, не нужно включать специальные заголовки или передавать специальные типы в качестве параметров для функций) – CoffeeandCode