Przejdź do głównej zawartości

Isinf

Defined in header <cmath>.

Description​

Determines if the given floating-point number num is a positive or negative infinity.
​The library provides overloads for all cv-unqualified floating-point types as the type of the parameter num  (od C++23).

​Additional Overloads are provided for all integer types, which are treated as double.

Declarations​

// 1)
constexpr bool isinf( /* floating-point-type */ num );
Additional Overloads
// 2)
template< class Integer >
constexpr bool isinf( Integer num );

Parameters​

​num - floating-point or integer value

Return value​

true if num is infinite, false otherwise.

Notes​

The additional overloads are not required to be provided exactly as Additional Overloads. They only need to be sufficient to ensure that for their argument num of integer type,
std::isinf(num) has the same effect as std::isinf(static_cast<double>(num)).

Examples​

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

Possible Result
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

Isinf

Defined in header <cmath>.

Description​

Determines if the given floating-point number num is a positive or negative infinity.
​The library provides overloads for all cv-unqualified floating-point types as the type of the parameter num  (od C++23).

​Additional Overloads are provided for all integer types, which are treated as double.

Declarations​

// 1)
constexpr bool isinf( /* floating-point-type */ num );
Additional Overloads
// 2)
template< class Integer >
constexpr bool isinf( Integer num );

Parameters​

​num - floating-point or integer value

Return value​

true if num is infinite, false otherwise.

Notes​

The additional overloads are not required to be provided exactly as Additional Overloads. They only need to be sufficient to ensure that for their argument num of integer type,
std::isinf(num) has the same effect as std::isinf(static_cast<double>(num)).

Examples​

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

Possible Result
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