Funkcija feholdexcept () mapē C ++ vispirms saglabā pašreizējo peldošā komata vidi fenv_t objektā un pēc tam notīra visus peldošā komata statusa karodziņus.
Funkcija feholdexcept () ir definēta galvenes failā.
feholdexcept () prototips
int feholdexcept (fenv_t * envp);
Funkcija feholdexcept () saglabā pašreizējo peldošā komata vidi objektam, uz kuru norāda envp, kā to paveicis fegetenv (), un notīra visus peldošā komata statusa karodziņus.
Visbeidzot, tas instalē režīmu bez apstājas, lai turpmākie peldošā komata izņēmumi nepārtrauctu izpildi, kamēr peldošā komata vide nav atjaunota, izsaucot feupdateenv vai fesetenv.
feholdexcept () parametri
- envp: rādītājs objektam, kura tips ir fenv_t un kurš saglabā peldošā komata vides statusu.
feholdexcept () Atgriežamā vērtība
- Pēc panākumiem funkcija feholdexcept () atgriež 0.
- Pēc neveiksmes tas atgriež nulli.
Piemērs: Kā darbojas funkcija feholdexcept ()?
#include #include #include #pragma STDC FENV_ACCESS ON using namespace std; void print_exceptions() ( cout << "Raised exceptions: "; if(fetestexcept(FE_ALL_EXCEPT)) ( if(fetestexcept(FE_DIVBYZERO)) cout << "FE_DIVBYZERO "; if(fetestexcept(FE_INEXACT)) cout << "FE_INEXACT "; if(fetestexcept(FE_INVALID)) cout << "FE_INVALID "; if(fetestexcept(FE_OVERFLOW)) cout << "FE_OVERFLOW "; if(fetestexcept(FE_UNDERFLOW)) cout << "FE_UNDERFLOW "; ) else cout << "None"; cout << endl; ) int main(void) ( fenv_t envp; /* raise certain exceptions */ feraiseexcept(FE_INVALID|FE_DIVBYZERO); print_exceptions(); /* saves and clears current exceptions */ feholdexcept(&envp); print_exceptions(); /* restores saved exceptions */ feupdateenv(&envp); print_exceptions(); return 0; )
Palaidot programmu, izeja būs:
Paaugstinātie izņēmumi: FE_DIVBYZERO FE_INVALID Paaugstinātie izņēmumi: Nav Paaugstinātie izņēmumi: FE_DIVBYZERO FE_INVALID