std::feraiseexcept
来自cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
| Defined in header <cfenv>
|
||
| int feraiseexcept( int excepts ); |
(C++11 起) | |
试图提高中列出
excepts的浮点异常(OR运算的浮点例外宏)。如果是一个例外是FE_OVERFLOW或FE_UNDERFLOW,此功能可额外提高FE_INEXACT。会引发异常的顺序是不确定的,除了FE_OVERFLOW和FE_UNDERFLOW前提出FE_INEXACT.Original:
Attempts to raise all floating point exceptions listed in
excepts (a bitwise OR of the 浮点例外宏). If one of the exceptions is FE_OVERFLOW or FE_UNDERFLOW, this function may additionally raise FE_INEXACT. The order in which the exceptions are raised is unspecified, except that FE_OVERFLOW and FE_UNDERFLOW are always raised before FE_INEXACT.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
目录 |
[编辑] 参数
| excepts | - | 列出的异常标志的位掩码提高
Original: bitmask listing the exception flags to raise The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
[编辑] 返回值
0如果所有上市的例外情况,提出了非零值,否则.....
Original:
0 if all listed exceptions were raised, non-zero value otherwise.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[编辑] 为例
#include <iostream> #include <cfenv> #pragma STDC FENV_ACCESS ON int main() { std::feclearexcept(FE_ALL_EXCEPT); int r = std::feraiseexcept(FE_UNDERFLOW | FE_DIVBYZERO); std::cout << "Raising divbyzero and underflow simultaneously " << (r?"fails":"succeeds") << " and results in\n"; 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"; } }
Output:
Raising divbyzero and underflow simultaneously succeeds and results in division by zero underflow
[编辑] 另请参阅
| (C++11) |
清除指定的浮点状态标志 Original: clears the specified floating-point status flags The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (函数) |
| (C++11) |
确定哪些指定浮点状态标志被设置 Original: determines which of the specified floating-point status flags are set The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (函数) |