Namensräume
Varianten
Aktionen

HUGE_VALF, HUGE_VAL, HUGE_VALL

Von cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
 
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) [bearbeiten]
C-Dokumentation für HUGE_VAL