std::numeric_limits<T>:: quiet_NaN
|
static
T quiet_NaN
(
)
throw
(
)
;
|
(bis C++11) | |
|
static
constexpr
T quiet_NaN
(
)
noexcept
;
|
(seit C++11) | |
Gibt den speziellen Wert "ruhiges
Not-a-Number
" zurück, wie er durch den Gleitkommatyp
T
dargestellt wird. Nur aussagekräftig, wenn
std::
numeric_limits
<
T
>
::
has_quiet_NaN
==
true
. In IEEE 754, der häufigsten binären Darstellung von Gleitkommazahlen, repräsentiert jeder Wert, bei dem alle Bits des Exponenten gesetzt sind und mindestens ein Bit des Mantisse gesetzt ist, ein NaN. Es ist implementierungsdefiniert, welche Werte der Mantisse ruhige oder signalisierende NaNs darstellen und ob das Vorzeichenbit bedeutungsvoll ist.
Inhaltsverzeichnis |
Rückgabewert
T
|
std:: numeric_limits < T > :: quiet_NaN ( ) |
| /* nicht spezialisiert */ | T ( ) |
| bool | false |
| char | 0 |
| signed char | 0 |
| unsigned char | 0 |
| wchar_t | 0 |
| char8_t (seit C++20) | 0 |
| char16_t (seit C++11) | 0 |
| char32_t (seit C++11) | 0 |
| short | 0 |
| unsigned short | 0 |
| int | 0 |
| unsigned int | 0 |
| long | 0 |
| unsigned long | 0 |
| long long (seit C++11) | 0 |
| unsigned long long (seit C++11) | 0 |
| float | implementierungsdefiniert (kann NAN sein) |
| double | implementierungsdefiniert |
| long double | implementierungsdefiniert |
Hinweise
Ein NaN (Not a Number) vergleicht sich niemals als gleich mit sich selbst. Das Kopieren eines NaN kann seine Bitdarstellung nicht bewahren.
Beispiel
Mehrere Möglichkeiten, eine NaN zu erzeugen (die Ausgabezeichenkette ist compilerspezifisch):
#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'; }
Mögliche Ausgabe:
nan nan nan nan nan -nan -nan NaN == NaN? false
Siehe auch
|
[static]
|
identifiziert Gleitkommatypen, die den speziellen Wert "ruhendes Not-a-Number" (NaN) darstellen können
(öffentliche statische Member-Konstante) |
|
[static]
|
gibt einen signalisierenden NaN-Wert des gegebenen Gleitkommatyps zurück
(öffentliche statische Member-Funktion) |
|
(C++11)
(C++11)
(C++11)
|
Not-a-Number (NaN)
(Funktion) |
|
(C++11)
|
prüft, ob die gegebene Zahl NaN ist
(Funktion) |