C ++ feupdateenv () - C ++ Standardbibliotek

Feupdateenv () -funktionen gemmer først aktuelt hævede undtagelser med flydende punkt, gendanner flydepunktmiljøet fra det givne fenv_t-objekt og hæver derefter de undtagelser, der er gemt tidligere.

Feupdateenv () -funktionen er defineret i headerfilen.

feupdateenv () prototype

 int feupdateenv (fenv_t * envp);

Feupdateenv () -funktionen tager en markør af typen fenv_t som sit argument, der har et flydende punktmiljø, der tidligere er indstillet ved hjælp af feholdexcept eller fegetenv og gendanner det flydende punktmiljø sammen med det aktuelle miljø.

feupdateenv () Parametre

  • envp: Markør til fenv_t-objektet, der er indstillet af et tidligere opkald til feholdexcept eller fegetenv eller er lig FE_DFL_ENV.

feupdateenv () Returværdi

  • Efter succes returnerer funktionen feupdateenv () 0.
  • Ved fejl returnerer den ikke-nul.

Eksempel: Hvordan fungerer feupdateenv () -funktionen?

 #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() ( fenv_t envp; /* raise certain exceptions */ feraiseexcept(FE_INVALID|FE_DIVBYZERO); print_exceptions(); /* saves and clears current exceptions */ feupdateenv(&envp); print_exceptions(); /* restores saved exceptions */ feupdateenv(&envp); print_exceptions(); return 0; )

Når du kører programmet, vil output være:

 Forhøjede undtagelser: FE_DIVBYZERO FE_INVALID Hævede undtagelser: Ingen Forhøjede undtagelser: FE_DIVBYZERO FE_INVALID

Interessante artikler...