C ++ feraiseexcept () - C ++ Standardbibliotek

Feraiseexcept () -funktionen i C ++ försöker höja alla undantag för flytande punkter som anges i argumentet.

Funktionen feraiseexcept () definieras i rubrikfilen.

feraiseexcept () prototyp

 int feraiseexcept (int excepts);

De undantag för flytande punkter som ska höjas listas i argumenten excepts.

Du bör också aktivera FENV_ACCESS , vilket ger ditt program åtkomst till den flytande punktmiljön för att testa undantagen.

feraiseexcept () Parametrar

  • excepts: Bitmask-lista över undantagsflaggor att höja.
Bitmask accepterade makron
Makro Typ Beskrivning
FE_DIVBYZERO Polfel Dividera med noll
FE_INEXACT Inexakt Inte exakta resultat som (1.0 / 3.0)
FE_INVALID Domänfel Åtminstone ett argument som används är ett värde för vilket funktionen inte är definierad
FE_OVERFLOW Fel på överflödesintervall Resultatet är för stort i storlek för att representeras av returtypen
FE_UNDERFLOW Fel på underflödesintervall Resultatet är för litet i storlek för att representeras av returtypen
FE_ALL_EXCEPT Alla undantag Alla undantag som stöds av implementeringen

feraiseexcept () Returvärde

  • Funktionen feraiseexcept () returnerar nollvärde om alla undantag som anges av excepts höjs.
  • Annars returnerar det ett icke-nollvärde.

Exempel: Hur feraiseexcept () fungerar

 #include #include #pragma STDC FENV_ACCESS ON using namespace std; int main() ( int retVal; feclearexcept(FE_ALL_EXCEPT); retVal = feraiseexcept(FE_OVERFLOW | FE_INVALID); if (retVal == 0) cout << "Successfully raised FE_OVERFLOW and FE_INVALID" << endl; else cout << "Raising FE_OVERFLOW and FE_INVALID failed" << endl; return 0; )

När du kör programmet blir resultatet:

 Lyckades upp FE_OVERFLOW och FE_INVALID

Intressanta artiklar...