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)
Definido en el encabezado <cfenv>
int feraiseexcept ( int excepts ) ;
(desde C++11)

Intenta generar todas las excepciones de punto flotante listadas en excepts (un OR bit a bit de las macros de excepción de punto flotante ). Si una de las excepciones es FE_OVERFLOW o FE_UNDERFLOW , esta función puede adicionalmente generar FE_INEXACT . El orden en que se generan las excepciones no está especificado, excepto que FE_OVERFLOW y FE_UNDERFLOW siempre se generan antes que FE_INEXACT .

Contenidos

Parámetros

excepts - máscara de bits que enumera las banderas de excepción a activar

Valor de retorno

0 si todas las excepciones listadas fueron lanzadas, valor distinto de cero en caso contrario.

Ejemplo

#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";
}

Salida:

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

Véase también

borra las banderas de estado de punto flotante especificadas
(función)
determina cuáles de las banderas de estado de punto flotante especificadas están activadas
(función)
Documentación de C para feraiseexcept