В C ++ 17 этот код является незаконным: < /p>
constexpr int foo(int i) {
return std::integral_constant::value;
}
< /code>
Это потому, что даже если foo < /code> можно оценить во время компиляции, компилятору все еще необходимо создать инструкции, чтобы выполнить его во время выполнения, что делает шаблонный экземпляр невозможным. удаленный. Означает ли это, что этот код будет законным? < /P>
consteval int foo(int i) {
return std::integral_constant::value;
}
Подробнее здесь: https://stackoverflow.com/questions/561 ... on-argumen
Мобильная версия