table of contents
        
      
      
    - Tumbleweed 2024.07.05-1.3
 - Leap-16.0
 - Leap-15.6
 
| std::numeric_limits::quiet_NaN(3) | C++ Standard Libary | std::numeric_limits::quiet_NaN(3) | 
NAME¶
std::numeric_limits::quiet_NaN - std::numeric_limits::quiet_NaN
Synopsis¶
 static T quiet_NaN() throw(); (until C++11)
  
   static constexpr T quiet_NaN() noexcept; (since C++11)
  
   Returns the special value "quiet not-a-number", as represented by
    the floating-point
  
   type T. Only meaningful if std::numeric_limits<T>::has_quiet_NaN ==
    true. In IEEE
  
   754, the most common binary representation of floating-point numbers, any
    value with
  
   all bits of the exponent set and at least one bit of the fraction set
    represents a
  
   NaN. It is implementation-defined which values of the fraction represent
    quiet or
  
   signaling NaNs, and whether the sign bit is meaningful.
Return value¶
 T std::numeric_limits<T>::quiet_NaN()
  
   /* non-specialized */ T()
  
   bool false
  
   char 0
  
   signed char 0
  
   unsigned char 0
  
   wchar_t 0
  
   char8_t (since C++20) 0
  
   char16_t (since C++11) 0
  
   char32_t (since C++11) 0
  
   short 0
  
   unsigned short 0
  
   int 0
  
   unsigned int 0
  
   long 0
  
   unsigned long 0
  
   long long (since C++11) 0
  
   unsigned long long (since C++11) 0
  
   float implementation-defined (may be NAN)
  
   double implementation-defined
  
   long double implementation-defined
Notes¶
 A NaN never compares equal to itself. Copying a NaN may not
    preserve its bit
  
   representation.
Example¶
Several ways to generate a NaN (the output string is compiler-specific):
// Run this code
  
   #include <iostream>
  
   #include <limits>
  
   #include <cmath>
  
   int main()
  
   {
  
   std::cout << std::numeric_limits<double>::quiet_NaN() << '
    ' // nan
  
   << std::numeric_limits<double>::signaling_NaN() << ' ' //
    nan
  
   << std::acos(2) << ' ' // nan
  
   << std::tgamma(-1) << ' ' // nan
  
   << std::log(-1) << ' ' // nan
  
   << std::sqrt(-1) << ' ' // -nan
  
   << 0 / 0.0 << '\n'; // -nan
  
   std::cout << "NaN == NaN? " << std::boolalpha
  
   << ( std::numeric_limits<double>::quiet_NaN() ==
  
   std::numeric_limits<double>::quiet_NaN() ) << '\n';
  
   }
Possible output:¶
 nan nan nan nan nan -nan -nan
  
   NaN == NaN? false
See also¶
 has_quiet_NaN identifies floating-point types that can represent
    the special value
  
   [static] "quiet not-a-number" (NaN)
  
   (public static member constant)
  
   signaling_NaN returns a signaling NaN value of the given floating-point type
  
   [static] (public static member function)
  
   nan
  
   nanf
  
   nanl not-a-number (NaN)
  
   (C++11) (function)
  
   (C++11)
  
   (C++11)
  
   isnan checks if the given number is NaN
  
   (C++11) (function)
| 2024.06.10 | http://cppreference.com |