Namespaces
Variants

std:: isfinite

From cppreference.net
Common mathematical functions
Nearest integer floating point operations
(C++11)
(C++11)
(C++11) (C++11) (C++11)
Floating point manipulation functions
(C++11) (C++11)
(C++11)
(C++11)
Classification and comparison
(C++11)
isfinite
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Types
(C++11)
(C++11)
(C++11)
Macro constants
Definido en el encabezado <cmath>
(1)
bool isfinite ( float num ) ;

bool isfinite ( double num ) ;

bool isfinite ( long double num ) ;
(desde C++11)
(hasta C++23)
constexpr bool isfinite ( /*floating-point-type*/ num ) ;
(desde C++23)
Sobrecarga SIMD (desde C++26)
Definido en el encabezado <simd>
template < /*math-floating-point*/ V >

constexpr typename /*deduced-simd-t*/ < V > :: mask_type

isfinite ( const V & v_num ) ;
(S) (desde C++26)
Definido en el encabezado <cmath>
template < class Integer >
bool isfinite ( Integer num ) ;
(A) (desde C++11)
(constexpr desde C++23)
1) Determina si el número de punto flotante dado num tiene un valor finito, es decir, es normal, subnormal o cero, pero no infinito o NaN. La biblioteca proporciona sobrecargas para todos los tipos de punto flotante sin calificación cv como el tipo del parámetro num . (since C++23)
S) La sobrecarga SIMD realiza un std::isfinite elemento por elemento en v_num .
(Ver math-floating-point y deduced-simd-t para sus definiciones.)
(desde C++26)
A) Se proporcionan sobrecargas adicionales para todos los tipos enteros, los cuales son tratados como double .

Contenidos

Parámetros

num - valor de punto flotante o entero
v_num - un objeto de datos paralelos de especialización std::basic_simd donde su tipo de elemento es un tipo de punto flotante

Valor de retorno

1) true si num tiene un valor finito, false en caso contrario.
S) Un objeto máscara de datos paralelos donde el i th elemento es igual a true si v_num [ i ] tiene valor finito o false en caso contrario para todo i en el rango [ 0 , v_num. size ( ) ) .

Notas

Las sobrecargas adicionales no requieren ser proporcionadas exactamente como (A) . Solo necesitan ser suficientes para garantizar que para su argumento num de tipo entero, std :: isfinite ( num ) tenga el mismo efecto que std :: isfinite ( static_cast < double > ( num ) ) .

Ejemplos

#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';
}

Salida:

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

Véase también

(C++11)
clasifica el valor de punto flotante dado
(función)
(C++11)
verifica si el número dado es infinito
(función)
(C++11)
verifica si el número dado es NaN
(función)
(C++11)
verifica si el número dado es normal
(función)
Documentación C para isfinite