Переименовать ключевые слова co_await, co_yield

Игорь Шаповал
Игорь Шаповал

Все как и я надеюсь что на февральской встрече по стандартизации в С++20 добавлят корутины. Возможность программировать ассинхронно с коробки на уровне языка очень классно. Но ключевые слова которые предлагаются очень отвратительные. Хочется чтобы можно было использовать как в C# await, yield и все. C выступа Гора Нишанова было сказано что слова await и yield очень часто используемые, поэтому предлагаю сделать контексные слова await, yield, а вместо ключевого слова co_return использовался простой return. В модулях ведь хотят сделать module, import контексными, почему бы в корутинах этого не сделать.

 

2
рейтинг
5 комментариев
Andrey Davydov

Вы точно понимаете, что значит contextual keyword? В таком контексте

await x;
await foo();

await должен трактоваться как keyword или identifier?

Andrey Davydov
NeoProgramming

ИМХО contextual keywords это путь в PL/1.

NeoProgramming
Игорь Шаповал

Я имел в виду как ключевые слова override, final

Игорь Шаповал
Andrey Davydov

Игорь Шаповал, override и final могут быть ключевыми словами только в тех местах, где синтаксически нельзя написать идентификатор, с (co_)await это не так.

Andrey Davydov
Игорь Шаповал

Почему co_await, co_yield не может быть await, yield ключевыми словами, как override, final.

Игорь Шаповал
Другие идеи
Группа создана, чтобы собирать предложения к стандарту C++, организовывать их внутренние обсуждения, помогать готовить их для отправки в комитет и защищать на общих собраниях в рабочей группе по С++ Международной организации по стандартизации (ISO).
Все предложения