Namespaces
Variants

std::numeric_limits<T>:: has_denorm_loss

From cppreference.net
Utilities library
static const bool has_denorm_loss ;
(bis C++11)
static constexpr bool has_denorm_loss ;
(seit C++11)
(veraltet in C++23)

Der Wert von std:: numeric_limits < T > :: has_denorm_loss ist true für alle Gleitkommatypen T , die Genauigkeitsverlust bei der Erstellung einer subnormalen Zahl als Denormalisierungsverlust anstatt als ungenaues Ergebnis erkennen (siehe unten).

Inhaltsverzeichnis

Standardspezialisierungen

T Wert von std:: numeric_limits < T > :: has_denorm_loss
/* non-specialized */ false
bool false
char false
signed char false
unsigned char false
wchar_t false
char8_t (seit C++20) false
char16_t (seit C++11) false
char32_t (seit C++11) false
short false
unsigned short false
int false
unsigned int false
long false
unsigned long false
long long (seit C++11) false
unsigned long long (seit C++11) false
float implementierungsdefiniert
double implementierungsdefiniert
long double implementierungsdefiniert

Hinweise

Standardkonforme IEEE 754-Gleitkomma-Implementierungen von subnormalen Zahlen müssen den mit der Erzeugung solcher Zahlen verbundenen Genauigkeitsverlust erkennen, falls dieser auftritt, und können dies auf eine von zwei verschiedenen Arten tun:

  1. Denormalisierungsverlust: Das gelieferte Ergebnis weicht von dem ab, was berechnet worden wäre, wenn der Exponentenbereich unbegrenzt wäre.
  2. Ungenaues Ergebnis: Das gelieferte Ergebnis weicht von dem ab, was berechnet worden wäre, wenn sowohl der Exponentenbereich als auch die Genauigkeit unbegrenzt wären.

Es existiert keine Implementierung eines Denormalisierungsverlustmechanismus (Genauigkeitsverlust wird nach dem Runden als ungenaues Ergebnis erkannt), und diese Option wurde in der 2008er Revision von IEEE Std 754 entfernt.

libstdc++, libc++, libCstd und stlport4 definieren diese Konstante als false für alle Gleitkommatypen. Microsoft Visual Studio definiert sie als true für alle Gleitkommatypen.

Wie bei allen Gleitkommaberechnungen kann Genauigkeitsverlust FE_INEXACT auslösen.

Beispiel

Siehe auch

kennzeichnet Gleitkommatypen, die Tinyness vor dem Runden erkennen
(öffentliche statische Memberkonstante)
[static]
identifiziert den Denormalisierungsstil, der vom Gleitkommatyp verwendet wird
(öffentliche statische Memberkonstante)