std::fetestexcept
Da cppreference.com.
|
|
Questa pagina è stata tradotta in modo automatico dalla versione in ineglese della wiki usando Google Translate.
La traduzione potrebbe contenere errori e termini strani. Muovi il puntatore sopra al testo per vedere la versione originale. Puoi aiutarci a correggere gli gli errori. Per ulteriori istruzioni clicca qui. |
<metanoindex/>
<tbody> </tbody>| Elemento definito nell'header <cfenv>
|
||
int fetestexcept( int excepts ); |
(dal C++11) | |
Determina quale delle sottoinsieme specificato delle eccezioni in virgola mobile sono attualmente impostato. Il
excepts argomento è un OR bit per bit del galleggiante macro di eccezione.Original:
Determines which of the specified subset of the floating point exceptions are currently set. The argument
excepts is a bitwise OR of the galleggiante macro di eccezione.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.
Parametri
| excepts | - | maschera di bit che elenca le bandiere eccezione per testare
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. |
Valore di ritorno
OR bit per bit dei virgola mobile macro eccezioni che sono entrambi inclusi in
excepts e corrispondono alle eccezioni a virgola mobile attualmente impostato.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.
Esempio
#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
Vedi anche
(C++11) |
cancella le specificati virgola mobile flag di stato 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. (funzione) |