Почему мы требуем «требует требует»?C++

Программы на C++. Форум разработчиков
Anonymous
Почему мы требуем «требует требует»?

Сообщение Anonymous »

Одним из аспектов концепции C++20 является то, что существуют определенные ситуации, в которых вам приходится писать require. Например, этот пример из [expr.prim.req]/3:

requires-expression также можно использовать в requires-clause ([temp]) как способ написания специальных ограничений для аргументов шаблона, таких как приведенный ниже:

Код: Выделить всё

template
requires requires (T x) { x + x; }
T add(T a, T b) { return a + b; }
Первый требует вводит requires-clasuse, а второй вводит requires-expression.

Какова техническая причина необходимости второго ключевого слова require? Почему мы не можем просто разрешить писать:

Код: Выделить всё

template
requires (T x) { x + x; }
T add(T a, T b) { return a + b; }
(Примечание: не отвечайте, что этого требует грамматика)

Подробнее здесь: https://stackoverflow.com/questions/542 ... s-requires

Вернуться в «C++»