FreeBSD Manual Pages
std::isnan(3) C++ Standard Libary std::isnan(3) NAME std::isnan - std::isnan Synopsis Defined in header <cmath> bool isnan( float arg ); (1) (since C++11) (constexpr since C++23) bool isnan( double arg ); (2) (since C++11) (constexpr since C++23) bool isnan( long double arg ); (3) (since C++11) (constexpr since C++23) bool isnan( IntegralType arg ); (4) (since C++11) (constexpr since C++23) 1-3) Determines if the given floating point number arg is a not-a- number (NaN) value. 4) A set of overloads or a function template accepting the arg argu- ment of any integral type. Equivalent to (2) (the argument is cast to double). Parameters arg - floating point value Return value true if arg is a NaN, false otherwise Notes There are many different NaN values with different sign bits and payloads, see std::nan and std::numeric_limits::quiet_NaN. NaN values never compare equal to themselves or to other NaN values. Copying a NaN is not required, by IEEE-754, to preserve its bit representation (sign and payload), though most implementation do. Another way to test if a floating-point value is NaN is to compare it with itself: bool is_nan(double x) { return x != x; } Example // Run this code #include <iostream> #include <cmath> #include <cfloat> int main() { std::cout << std::boolalpha << "isnan(NaN) = " << std::isnan(NAN) << '\n' << "isnan(Inf) = " << std::isnan(INFINITY) << '\n' << "isnan(0.0) = " << std::isnan(0.0) << '\n' << "isnan(DBL_MIN/2.0) = " << std::isnan(DBL_MIN/2.0) << '\n' << "isnan(0.0 / 0.0) = " << std::isnan(0.0/0.0) << '\n' << "isnan(Inf - Inf) = " << std::isnan(INFINITY - IN- FINITY) << '\n'; } Output: isnan(NaN) = true isnan(Inf) = false isnan(0.0) = false isnan(DBL_MIN/2.0) = false isnan(0.0 / 0.0) = true isnan(Inf - Inf) = true See also nan nanf nanl not-a-number (NaN) (C++11) (function) (C++11) (C++11) fpclassify categorizes the given floating-point value (C++11) (function) isfinite checks if the given number has finite value (C++11) (function) isinf checks if the given number is infinite (C++11) (function) isnormal checks if the given number is normal (C++11) (function) isunordered checks if two floating-point values are unordered (C++11) (function) http://cppreference.com 2022.07.31 std::isnan(3)
NAME | Synopsis | Parameters | Return value | Notes | Example | Output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::isnan&sektion=3&manpath=FreeBSD+Ports+15.0>
