Type support
Basic types
Fundamental types
Fixed width integer types (C++11)
Numeric limits
C numeric limits interface
Runtime type information
Type traits
Type categories
Type properties
(C++11)(until C++20)
(C++11)(deprecated in C++20)
Type trait constants
Constant evaluation context
Supported operations
Relationships and property queries
Type modifications
Type transformations
(C++11)(until C++20)(C++17)
static const bool has_quiet_NaN;
(until C++11)
static constexpr bool has_quiet_NaN;
(since C++11)

The value of std::numeric_limits<T>::has_quiet_NaN is true for all types T capable of representing the special value "Quiet Not-A-Number". This constant is meaningful for all floating-point types and is guaranteed to be true if std::numeric_limits<T>::is_iec559 == true.

Standard specializations

T value of std::numeric_limits<T>::has_quiet_NaN
/* non-specialized */ false
bool false
char false
signed char false
unsigned char false
wchar_t false
char8_t false
char16_t false
char32_t false
short false
unsigned short false
int false
unsigned int false
long false
unsigned long false
long long false
unsigned long long false
float usually true
double usually true
long double usually true

See also

returns a quiet NaN value of the given floating-point type
(public static member function)
identifies floating-point types that can represent the special value "positive infinity"
(public static member constant)
identifies floating-point types that can represent the special value "signaling not-a-number" (NaN)
(public static member constant)