@gth-other

Существует ли constexpr std::pow?

Не могу понять существует ли constexpr std::pow. В интернетах пишут, что нет. IDE (CLion) на попытку в constexpr переменной использовать std::pow ругается с текстом
Constexpr variable must be initialized by a constant expression
, но несмотря на это компилятор спокойно компилирует. Я что-то не понял или все-таки это существует?

P.S. Пример кода
static constexpr int Lakes = (int)std::pow(Map::Size::Square * MapGenerator::LakesGenerator::LakesPart, MapGenerator::LakesGenerator::LakesNumberK);


P.S.2. Использую 23 стандарт.
  • Вопрос задан
  • 269 просмотров
Решения вопроса 1
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
Используйте static_math, там есть constexpr-версии популярных математических функций.

Некоторые реализации стандартной библиотеки также поддерживают этот трюк, но не все - так как в Стандарте написано, что математические функции стандартной библиотеки должны менять значение errorno при ошибках, что невозможно в constexpr-варианте
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы