Будут ли функции consteval разрешать параметры шаблона, зависящие от аргументов функции?C++

Программы на C++. Форум разработчиков
Anonymous
Будут ли функции consteval разрешать параметры шаблона, зависящие от аргументов функции?

Сообщение Anonymous »

В C++17 этот код недопустим:

constexpr int foo(int i) {
return std::integral_constant::value;
}


Это потому, что даже если foo может быть вычислено во время компиляции, компилятору все равно необходимо создать инструкции для его выполнения во время выполнения, что делает создание экземпляра шаблона невозможным.

В C++20 у нас будут константные функции, которые необходимо оценивать во время компиляции, поэтому ограничение времени выполнения должно быть удалено. Означает ли это, что этот код будет легальным?

consteval int foo(int i) {
return std::integral_constant::value;
}


Подробнее здесь: https://stackoverflow.com/questions/561 ... on-argumen

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