Почему выражение константной функции НЕ является основным выражением?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему выражение константной функции НЕ является основным выражением?

Сообщение Anonymous »

Рассмотрим следующий фрагмент кода (скомпилированный с помощью clang19):

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

consteval bool IsEven(int n) {
return 0 == n % 2;
}

template
requires (IsEven(n)) // ok
void f1() {}

template
requires IsEven(n) // error: Atomic constraint must be of type 'bool'
// (found '')
void f2() {}
На странице cppref указано, что IsEven(n) не является основным выражением. Мне просто интересно:

Почему выражение постоянной функции НЕ является основным выражением?


Подробнее здесь: https://stackoverflow.com/questions/793 ... expression
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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