cpp-ru / ideas

Идеи по улучшению языка C++ для обсуждения
https://cpp-ru.github.io/proposals
Creative Commons Zero v1.0 Universal
88 stars 0 forks source link

Сделать слово `requires` контекстно-зависимым #494

Open leha-bot opened 2 years ago

leha-bot commented 2 years ago

В 20-ку концепты принесли новый ключевик requires, который, по идее, используется только в определенных местах (в декларации функции, в описании шаблона, етц - поправьте, список сумбурно привел)

Однако это приводит к тому, что существующий код ломается, см например ,сюда:

https://github.com/rpm-software-management/createrepo_c/issues/181

(Где-то это уже поменяли в недрах RPM/libsolv, но это привело к нарушению обратной совместимости и костылям, см например тут: https://github.com/openSUSE/libsolv/pull/477/files )

Izaron commented 2 years ago

Можно разжаловать requires из группы keywords в группу identifiers with special meaning, судя по описанию это то что нужно

https://en.cppreference.com/w/cpp/keyword

AndreyG commented 2 years ago

В отличие от override/final/module/import requires используется в тех местах, где может встречаться обычный идентификатор, поэтому его нельзя сделать контекстно-зависимым.