HUGE_VALF, HUGE_VAL, HUGE_VALL
| Definiert in der Header-Datei <cmath> |
||
| #define HUGE_VALF /* implementationsabhängig */ |
(seit C++11) | |
| #define HUGE_VAL /* implementationsabhängig */ |
||
| #define HUGE_VALL /* implementationsabhängig */ |
(seit C++11) | |
Die Makros HUGE_VALF, HUGE_VAL und HUGE_VALL erweitern sich zu positiven Fließkomma-Konstanten-Ausdrücken, die gleich den Werten sind, die von Fließkomma-Funktionen und -Operatoren im Falle eines Überlaufs zurückgegeben werden (siehe math_errhandling).
| Konstante | Erklärung |
HUGE_VALF
|
Erweitert sich zu einem positiven float-Ausdruck, der einen Überlauf anzeigt |
HUGE_VAL
|
Erweitert sich zu einem positiven double-Ausdruck, der einen Überlauf anzeigt, nicht notwendigerweise darstellbar als float |
HUGE_VALL
|
Erweitert sich zu einem positiven long double-Ausdruck, der einen Überlauf anzeigt, nicht notwendigerweise darstellbar als float oder double |
Auf Implementierungen, die Fließkomma-Unendlichkeiten unterstützen, erweitern sich diese Makros immer zu den positiven Unendlichkeiten von float, double und long double.
[bearbeiten] Hinweise
Auf Implementierungen, die keine Fließkomma-Unendlichkeiten unterstützen, erweitern sich diese Makros zur maximalen endlichen Zahl ihres jeweiligen Typs.
C++98 fügte float- und long double-Überladungen mathematischer Funktionen hinzu. Es gibt ein Problem, dass die float-Überladungen HUGE_VAL nicht zurückgeben können, um einen Überlauf anzuzeigen, da dieses Makro nicht garantiert als float darstellbar ist.
LWG-Problem 357 wurde erhoben, um dieses Problem anzugehen. LWG stellte fest, dass C99 dasselbe Problem hat (auch float- und long double-Überladungen wurden in C99 hinzugefügt), und C99 führte neue Makros HUGE_VALF und HUGE_VALL ein, um das Problem zu lösen. Daher wurde das Problem geschlossen und die C99-Lösung wurde in C++11 übernommen.
[bearbeiten] Siehe auch
| (C++11) |
evaluiert zu positiver Unendlichkeit oder dem Wert, der garantiert einen float überläuft (Makrokonstante) |
| C-Dokumentation für HUGE_VAL
| |