std:: feraiseexcept
|
Definiert im Header
<cfenv>
|
||
|
int
feraiseexcept
(
int
excepts
)
;
|
(seit C++11) | |
Versucht, alle in
excepts
aufgeführten Gleitkomma-Ausnahmen auszulösen
(eine bitweise ODER-Verknüpfung der
Gleitkomma-Ausnahmemakros
). Falls eine der Ausnahmen
FE_OVERFLOW
oder
FE_UNDERFLOW
ist, kann diese Funktion zusätzlich
FE_INEXACT
auslösen. Die Reihenfolge, in der die Ausnahmen ausgelöst werden, ist nicht spezifiziert, außer dass
FE_OVERFLOW
und
FE_UNDERFLOW
immer vor
FE_INEXACT
ausgelöst werden.
Inhaltsverzeichnis |
Parameter
| excepts | - | Bitmaske, die die zu setzenden Ausnahmeflags auflistet |
Rückgabewert
0 wenn alle aufgeführten Ausnahmen ausgelöst wurden, andernfalls ein Wert ungleich Null.
Beispiel
#include <cfenv> #include <iostream> // #pragma STDC FENV_ACCESS ON int main() { std::feclearexcept(FE_ALL_EXCEPT); const int r = std::feraiseexcept(FE_UNDERFLOW | FE_DIVBYZERO); std::cout << "Raising divbyzero and underflow simultaneously " << (r ? "fails" : "succeeds") << " and results in\n"; const int e = std::fetestexcept(FE_ALL_EXCEPT); if (e & FE_DIVBYZERO) std::cout << "division by zero\n"; if (e & FE_INEXACT) std::cout << "inexact\n"; if (e & FE_INVALID) std::cout << "invalid\n"; if (e & FE_UNDERFLOW) std::cout << "underflow\n"; if (e & FE_OVERFLOW) std::cout << "overflow\n"; }
Ausgabe:
Raising divbyzero and underflow simultaneously succeeds and results in division by zero underflow
Siehe auch
|
(C++11)
|
Löscht die angegebenen Gleitkomma-Statusflags
(Funktion) |
|
(C++11)
|
Bestimmt welche der angegebenen Gleitkomma-Statusflags gesetzt sind
(Funktion) |
|
C-Dokumentation
für
feraiseexcept
|
|