std::fetestexcept
Aus cppreference.com
![]() |
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
definiert in Header <cfenv>
|
||
int fetestexcept( int excepts ); |
(seit C++11) | |
Legt fest, welche der angegebenen Teilmenge der Gleitkomma-Ausnahmen sind derzeit eingestellt. Das Argument
excepts
ist eine bitweise OR der Gleitkomma-Ausnahme Makros .Original:
Determines which of the specified subset of the floating point exceptions are currently set. The argument
excepts
is a bitwise OR of the Gleitkomma-Ausnahme Makros.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Inhaltsverzeichnis |
[Bearbeiten] Parameter
excepts | - | Bitmaske auflistet Ausnahme Flags zu testen
Original: bitmask listing the exception flags to test The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
[Bearbeiten] Rückgabewert
Bitweise ODER-Verknüpfung der Gleitkomma-Ausnahme-Makros, die sowohl in
excepts
enthalten und entsprechen den Gleitkomma-Exceptions aktuell eingestellte .Original:
Bitwise OR of the floating-point exception macros that are both included in
excepts
and correspond to floating-point exceptions currently set.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[Bearbeiten] Beispiel
#include <iostream> #include <cfenv> #include <cmath> #pragma STDC FENV_ACCESS ON volatile double zero = 0.0; // volatile not needed where FENV_ACCESS is supported volatile double one = 1.0; // volatile not needed where FENV_ACCESS is supported int main() { std::feclearexcept(FE_ALL_EXCEPT); std::cout << "1.0/0.0 = " << 1.0 / zero << '\n'; if(std::fetestexcept(FE_DIVBYZERO)) { std::cout << "division by zero reported\n"; } else { std::cout << "divsion by zero not reported\n"; } std::feclearexcept(FE_ALL_EXCEPT); std::cout << "1.0/10 = " << one/10 << '\n'; if(std::fetestexcept(FE_INEXACT)) { std::cout << "inexact result reported\n"; } else { std::cout << "inexact result not reported\n"; } std::feclearexcept(FE_ALL_EXCEPT); std::cout << "sqrt(-1) = " << std::sqrt(-1) << '\n'; if(std::fetestexcept(FE_INVALID)) { std::cout << "invalid result reported\n"; } else { std::cout << "invalid result not reported\n"; } }
Output:
1.0/0.0 = inf division by zero reported 1.0/10 = 0.1 inexact result reported sqrt(-1) = -nan invalid result reported
[Bearbeiten] Siehe auch
(C++11) |
löscht die angegebene Fließkomma-Status-Flags Original: clears the specified floating-point status flags The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (Funktion) |