FE_DFL_ENV
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. |
Elemento definito nell'header <cfenv>
|
||
#define FE_DFL_ENV /*implementation defined*/ |
(dal C++11) | |
Il FE_DFL_ENV macro costante si espande a un'espressione di const std::fenv_t* tipo, che punta ad una copia completa dell'ambiente predefinito in virgola mobile, vale a dire, l'ambiente caricato all'avvio del programma.
Original:
The macro constant FE_DFL_ENV expands to an expression of type const std::fenv_t*, which points to a full copy of the default floating-point environment, that is, the environment as loaded at program startup.
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.
Ulteriori macro che iniziano con
FE_
seguita da lettere maiuscole, e hanno la const std::fenv_t* tipo, possono essere supportati da una implementazione.Original:
Additional macros that begin with
FE_
followed by uppercase letters, and have the type const std::fenv_t*, may be supported by an implementation.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.
[modifica] Esempio
#include <iostream> #include <cfenv> #pragma STDC FENV_ACCESS ON void show_env() { int e = std::fetestexcept(FE_ALL_EXCEPT); if(e & FE_DIVBYZERO) std::cout << "division by zero is raised\n"; if(e & FE_INEXACT) std::cout << "inexact is raised\n"; if(e & FE_INVALID) std::cout << "invalid is raised\n"; if(e & FE_UNDERFLOW) std::cout << "underflow is raised\n"; if(e & FE_OVERFLOW) std::cout << "overflow is raised\n"; int r = std::fegetround(); switch(r) { case FE_DOWNWARD: std::cout << "rounding down\n"; break; case FE_TONEAREST: std::cout << "rounding to nearest\n"; break; case FE_TOWARDZERO: std::cout << "rounding to zero\n"; break; case FE_UPWARD: std::cout << "rounding up\n"; break; } } int main() { std::cout << "On startup: \n"; show_env(); std::feraiseexcept(FE_UNDERFLOW | FE_OVERFLOW); std::fesetround(FE_UPWARD); std::cout << "\nBefore restoration: \n"; show_env(); std::fesetenv(FE_DFL_ENV); std::cout << "\nAfter reset to default: \n"; show_env(); }
Output:
On startup: rounding to nearest Before restoration: underflow is raised overflow is raised rounding up After reset to default: rounding to nearest
[modifica] Vedi anche
(C++11) |
salva o ripristina l'ambiente corrente in virgola mobile Original: saves or restores the current floating point environment The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (funzione) |
(C++11) |
ripristina la virgola mobile e solleva l'ambiente precedentemente generare eccezioni Original: restores the floating-point environment and raises the previously raise exceptions The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (funzione) |