Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::isinf(3)		      C++ Standard Libary		 std::isinf(3)

NAME
       std::isinf - std::isinf

Synopsis
	  Defined in header <cmath>
	  bool isinf( float num	);
								       (since
       C++11)
	  bool	isinf( double num );					(until
       C++23)

	  bool isinf( long double num );
	  constexpr bool isinf(	/* floating-point-type */ num  (1)	(since
       C++23)
	  );
	  Additional overloads
	  Defined in header <cmath>
	  template<  class Integer >				    (A)	(since
       C++11)
	  bool isinf( Integer num );				       (const-
       expr since C++23)

	  1) 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.
	  (since C++23)
	  A)  Additional  overloads  are provided for all integer types, which
       are treated as
	  double.

Parameters
	  num -	floating-point or integer value

Return value
	  true if num is infinite, false otherwise.

Notes
	  GCC and Clang	support	a -ffinite-math	option	(additionally  implied
       by -ffast-math),
	  which	 allows	 the respective	compiler to assume the nonexistence of
       special IEEE-754
	  floating point values	such as	NaN, infinity, or  negative  zero.  In
       other words,
	  std::isinf is	assumed	to always return false under this option.

	  The  additional overloads are	not required to	be provided exactly as
       (A). They only
	  need to be sufficient	to ensure that for their argument num of inte-
       ger type,
	  std::isinf(num) has the same effect  as  std::isinf(static_cast<dou-
       ble>(num)).

Example
       // Run this code

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

Output:
	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

See also
	  fpclassify categorizes the given floating-point value
	  (C++11)    (function)
	  isfinite   checks if the given number	has finite value
	  (C++11)    (function)
	  isnan	     checks if the given number	is NaN
	  (C++11)    (function)
	  isnormal   checks if the given number	is normal
	  (C++11)    (function)
	  C documentation for
	  isinf

http://cppreference.com		  2024.06.10			 std::isinf(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::isinf&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help