std::fetestexcept - cppreference.com
De cppreference.com
|
|
Esta página se ha traducido por ordenador/computador/computadora de la versión en inglés de la Wiki usando Google Translate. La traducción puede contener errores y palabras aparatosas/incorrectas. Planea sobre el texto para ver la versión original. Puedes ayudar a corregir los errores y mejorar la traducción. Para instrucciones haz clic aquí. |
| Definido en el archivo de encabezado |
||
|
|
(desde C++11) | |
Determina cuál de los subconjunto específico de las excepciones de punto flotante se encuentra activado. El excepts argumento es un O-lógico de la flotando macros punto de excepción .
Original:
Determines which of the specified subset of the floating point exceptions are currently set. The argument excepts is a bitwise OR of the flotando macros punto de excepción.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Parámetros
| excepts | - | máscara de bits enumerando las banderas de excepción para la prueba Original: bitmask listing the exception flags to test The text has been machine-translated via Google Translate. |
Valor de retorno
OR bit a bit de las macros de excepción de coma flotante que están incluidos en excepts y corresponden a excepciones de punto flotante establecidos actualmente .
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.
Ejemplo
#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"; } }
Salida:
1.0/0.0 = inf division by zero reported 1.0/10 = 0.1 inexact result reported sqrt(-1) = -nan invalid result reported
Ver también
borra los especificados en coma flotante indicadores de estado Original: clears the specified floating-point status flags The text has been machine-translated via Google Translate. (función) [editar] |