Namespaces
Variants

std:: feraiseexcept

From cppreference.net
Floating-point environment
Functions
feraiseexcept
(C++11)
(C++11) (C++11)
(C++11) (C++11)
Macro constants
(C++11)
Défini dans l'en-tête <cfenv>
int feraiseexcept ( int excepts ) ;
(depuis C++11)

Tente de lever toutes les exceptions en virgule flottante listées dans excepts (un OU binaire des macros d'exception en virgule flottante ). Si l'une des exceptions est FE_OVERFLOW ou FE_UNDERFLOW , cette fonction peut également lever FE_INEXACT . L'ordre dans lequel les exceptions sont levées n'est pas spécifié, sauf que FE_OVERFLOW et FE_UNDERFLOW sont toujours levés avant FE_INEXACT .

Table des matières

Paramètres

excepts - masque de bits listant les indicateurs d'exception à lever

Valeur de retour

0 si toutes les exceptions listées ont été levées, valeur non nulle sinon.

Exemple

#include <cfenv>
#include <iostream>
// #pragma STDC FENV_ACCESS ON
int main()
{
    std::feclearexcept(FE_ALL_EXCEPT);
    const int r = std::feraiseexcept(FE_UNDERFLOW | FE_DIVBYZERO);
    std::cout << "Raising divbyzero and underflow simultaneously "
              << (r ? "fails" : "succeeds") << " and results in\n";
    const int e = std::fetestexcept(FE_ALL_EXCEPT);
    if (e & FE_DIVBYZERO)
        std::cout << "division by zero\n";
    if (e & FE_INEXACT)
        std::cout << "inexact\n";
    if (e & FE_INVALID)
        std::cout << "invalid\n";
    if (e & FE_UNDERFLOW)
        std::cout << "underflow\n";
    if (e & FE_OVERFLOW)
        std::cout << "overflow\n";
}

Sortie :

Raising divbyzero and underflow simultaneously succeeds and results in
division by zero
underflow

Voir aussi

efface les indicateurs d'état en virgule flottante spécifiés
(fonction)
détermine quels indicateurs d'état en virgule flottante spécifiés sont activés
(fonction)
Documentation C pour feraiseexcept