C ++ feraiseexcept () - Biblioteca standard C ++

Funcția feraiseexcept () din C ++ încearcă să ridice toate excepțiile în virgulă mobilă specificate de argument.

Funcția feraiseexcept () este definită în fișierul antet.

feraiseexcept () prototip

 int feraiseexcept (int exceptie);

Excepțiile în virgulă mobilă care trebuie ridicate sunt enumerate în argumentul excepții.

De asemenea, ar trebui să activați FENV_ACCESS , care va permite programului dvs. să acceseze mediul în virgulă mobilă pentru a testa excepțiile ridicate.

feraiseexcept () Parametri

  • excepts: listarea Bitmask a steagurilor de excepție de ridicat.
Bitmask a acceptat macrocomenzi
Macro Tip Descriere
FE_DIVBYZERO Eroare polară Impartirea cu zero
FE_INEXACT Inexact Nu sunt rezultate exacte, cum ar fi (1.0 / 3.0)
FE_INVALID Eroare de domeniu Cel puțin un argument utilizat este o valoare pentru care funcția nu este definită
FE_OVERFLOW Eroare de depășire Rezultatul este prea mare ca mărime pentru a fi reprezentat de tipul returnat
FE_UNDERFLOW Eroare de subdezvoltare Rezultatul este prea mic ca mărime pentru a fi reprezentat de tipul returnat
FE_ALL_EXCEPT Toate excepțiile Toate excepțiile acceptate de implementare

feraiseexcept () Valoare returnată

  • Funcția feraiseexcept () returnează valoarea zero dacă sunt ridicate toate excepțiile specificate de excepții.
  • În caz contrar, returnează o valoare diferită de zero.

Exemplu: Cum funcționează funcția feraiseexcept ()

 #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; )

Când rulați programul, ieșirea va fi:

 FE_OVERFLOW și FE_INVALID au crescut cu succes

Articole interesante...