C ++ feraiseexcept () - Libreria standard C ++

La funzione feraiseexcept () in C ++ tenta di sollevare tutte le eccezioni in virgola mobile specificate dall'argomento.

La funzione feraiseexcept () è definita nel file di intestazione.

prototipo feraiseexcept ()

 int feraiseexcept (int tranne);

Le eccezioni in virgola mobile da sollevare sono elencate nell'argomento tranne.

Inoltre, dovresti abilitare FENV_ACCESS , che darà al tuo programma l'accesso all'ambiente Floating point per testare le eccezioni sollevate.

Parametri feraiseexcept ()

  • tranne: elenco maschera di bit dei flag di eccezione da sollevare.
Bitmask ha accettato le macro
Macro genere Descrizione
FE_DIVBYZERO Errore di polo Divisione per zero
FE_INEXACT Inesatto Risultati non esatti come (1.0 / 3.0)
FE_INVALID Errore di dominio Almeno un argomento utilizzato è un valore per il quale la funzione non è definita
FE_OVERFLOW Errore di intervallo di overflow Il risultato è di grandezza troppo grande per essere rappresentato dal tipo restituito
FE_UNDERFLOW Errore di intervallo di underflow Il risultato è di grandezza troppo piccolo per essere rappresentato dal tipo restituito
FE_ALL_EXCEPT Tutte le eccezioni Tutte le eccezioni supportate dall'implementazione

feraiseexcept () Restituisce il valore

  • La funzione feraiseexcept () restituisce un valore zero se vengono sollevate tutte le eccezioni specificate da tranne.
  • Altrimenti restituisce un valore diverso da zero.

Esempio: come funziona la funzione 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; )

Quando esegui il programma, l'output sarà:

 Generati con successo FE_OVERFLOW e FE_INVALID

Articoli interessanti...