Namespaces
Variants

std:: isinf

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)
(C++11)
isinf
(C++11)
(C++11)
(C++11)
(C++11)
Types
(C++11)
(C++11)
(C++11)
Macro constants
Definido en el encabezado <cmath>
(1)
bool isinf ( float num ) ;

bool isinf ( double num ) ;

bool isinf ( long double num ) ;
(desde C++11)
(hasta C++23)
constexpr bool isinf ( /*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

isinf ( const V & v_num ) ;
(S) (desde C++26)
Definido en el encabezado <cmath>
template < class Integer >
bool isinf ( Integer num ) ;
(A) (desde C++11)
(constexpr desde C++23)
1) Determina si el número de punto flotante dado num es un infinito positivo o negativo. 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::isinf 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 es infinito, false en caso contrario.
S) Un objeto máscara de datos paralelos donde el i ésimo elemento es igual a true si v_num [ i ] es infinito o false en caso contrario para todo i en el rango [ 0 , v_num. size ( ) ) .

Notas

GCC y Clang soportan una opción -ffinite-math (adicionalmente implicada por -ffast-math ), que permite al compilador respectivo asumir la inexistencia de valores especiales de punto flotante IEEE-754 como NaN, infinito o cero negativo. En otras palabras, se asume que std::isinf siempre retornará false bajo esta opción.

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 :: isinf ( num ) tenga el mismo efecto que std :: isinf ( static_cast < double > ( num ) ) .

Ejemplo

#include <cfloat>
#include <cmath>
#include <iostream>
#include <limits>
int main()
{
    const double max = std::numeric_limits<double>::max();
    const double inf = std::numeric_limits<double>::infinity();
    std::cout << std::boolalpha
              << "isinf(NaN) = " << std::isinf(NAN) << '\n'
              << "isinf(Inf) = " << std::isinf(INFINITY) << '\n'
              << "isinf(max) = " << std::isinf(max) << '\n'
              << "isinf(inf) = " << std::isinf(inf) << '\n'
              << "isinf(0.0) = " << std::isinf(0.0) << '\n'
              << "isinf(exp(800)) = " << std::isinf(std::exp(800)) << '\n'
              << "isinf(DBL_MIN/2.0) = " << std::isinf(DBL_MIN / 2.0) << '\n';
}

Salida:

isinf(NaN) = false
isinf(Inf) = true
isinf(max) = false
isinf(inf) = true
isinf(0.0) = false
isinf(exp(800)) = true
isinf(DBL_MIN/2.0) = false

Véase también

(C++11)
clasifica el valor de punto flotante dado
(función)
(C++11)
verifica si el número dado tiene valor finito
(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)