numeric_limits
все функции являются constexpr, поэтому они отлично работают как константы времени компиляции (при условии, что вы используете текущую версию C ++).Так что std::numeric_limits<double>::infinity()
должно работать в любом контексте.
Даже если вы используете более старую версию, это все равно будет работать везде, где вам не требуется постоянная времени компиляции.Из вашего вопроса не ясно, нужна ли вам ваша константа времени компиляции;просто наличие заголовка не обязательно требует этого.
Если вы используете более старую версию и вам действительно нужна постоянная времени компиляции, макрос INFINITY
в cmath должен работать для вас.Это на самом деле значение float
для бесконечности, но его можно преобразовать в double
.