std::signbit(3)

NAME
std::signbit - std::signbit

Synopsis
   Defined in header <cmath>
   bool signbit( float arg ); (1) (since C++11)
                        (constexpr since C++23)
   bool signbit( double arg ); (2) (since C++11)
                        (constexpr since C++23)
   bool signbit( long double arg ); (3) (since C++11)
                        (constexpr since C++23)
   bool signbit( IntegralType arg ); (4) (since C++11)
                        (constexpr since C++23)
   1-3) Determines if the given floating point number arg is negative.
   4) A set of overloads or a function template accepting the arg argument of any
   integral type. Equivalent to (2) (the argument is cast to double).

Parameters
   arg - floating point value

Return value
   true if arg is negative, false otherwise

Notes
   This function detects the sign bit of zeroes, infinities, and NaNs. Along with
   std::copysign, std::signbit is one of the only two portable ways to examine the sign
   of a NaN.

Example
// Run this code
 #include <iostream>
 #include <cmath>
 int main()
 {
     std::cout << std::boolalpha
               << "signbit(+0.0) = " << std::signbit(+0.0) << '\n'
               << "signbit(-0.0) = " << std::signbit(-0.0) << '\n';
 }

Output:
 signbit(+0.0) = false
 signbit(-0.0) = true

See also
   abs(float)
   fabs
   fabsf absolute value of a floating point value (\(\small{|x|}\)|x|)
   fabsl (function)
   (C++11)
   (C++11)
   copysign
   copysignf
   copysignl copies the sign of a floating point value
   (C++11) (function)
   (C++11)
   (C++11)