Spec-Zone.ru › C++

std::isfinite

Определено в заголовке <cmath>
(1)
bool isfinite( float num );
bool isfinite( double num );
bool isfinite( long double num );
(с C++11)
(до C++23)
constexpr bool isfinite( /* floating-point-type */ num );
(с C++23)
Дополнительные перегрузки
Определено в заголовке <cmath>
template< class Integer >
bool isfinite( Integer num );
(A) (с C++11)
(constexpr с C++23)
1) Определяет, имеет ли заданное число с плавающей точкой num конечное значение, т.е. является ли оно нормальным, субнормальным или нулевым, но не бесконечным или NaN. Библиотека предоставляет перегрузки для всех типов чисел с плавающей точкой без квалификаторов cv как типа параметра num.(с C++23)
A) Дополнительные перегрузки предоставляются для всех целочисленных типов, которые рассматриваются как double.

Параметры

num - число с плавающей точкой или целое значение

Возвращаемое значение

true если num имеет конечное значение, false в противном случае.

Примечания

Дополнительные перегрузки не обязаны быть предоставлены точно как (A). Они должны быть достаточными для того, чтобы обеспечить, что для своего аргумента num целочисленного типа std::isfinite(num) имеет тот же эффект, что и std::isfinite(static_cast<double>(num)).

Примеры

#include <cfloat>
#include <cmath>
#include <iostream>
 
int main()
{
    std::cout << std::boolalpha
              << "isfinite(NaN) = " << std::isfinite(NAN) << '\n'
              << "isfinite(Inf) = " << std::isfinite(INFINITY) << '\n'
              << "isfinite(-Inf) = " << std::isfinite(-INFINITY) << '\n'
              << "isfinite(HUGE_VAL) = " << std::isfinite(HUGE_VAL) << '\n'
              << "isfinite(0.0) = " << std::isfinite(0.0) << '\n'
              << "isfinite(exp(800)) = " << std::isfinite(std::exp(800)) << '\n'
              << "isfinite(DBL_MIN/2.0) = " << std::isfinite(DBL_MIN / 2.0) << '\n';
}

Вывод:

isfinite(NaN) = false
isfinite(Inf) = false
isfinite(-Inf) = false
isfinite(HUGE_VAL) = false
isfinite(0.0) = true
isfinite(exp(800)) = false
isfinite(DBL_MIN/2.0) = true

См. также

fpclassify
(C++11)
классифицирует данное значение с плавающей точкой
(функция)
isinf
(C++11)
проверяет, является ли данное число бесконечным
(функция)
isnan
(C++11)
проверяет, является ли данное число NaN
(функция)
isnormal
(C++11)
проверяет, является ли данное число нормальным
(функция)
Документация на C для isfinite

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/numeric/math/isfinite

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API