FE_DIVBYZERO, FE_INEXACT, FE_INVALID, FE_OVERFLOW, FE_UNDERFLOW, FE_ALL_EXCEPT
提供: cppreference.com
![]() |
このページは、Google 翻訳を使って英語版から機械翻訳されました。
翻訳には誤りや奇妙な言い回しがあるかもしれません。文章の上にポインタをおくと、元の文章が見れます。誤りを修正して翻訳を改善する手助けをしてください。翻訳についての説明は、ここをクリックしてください。 |
Defined in header <cfenv>
|
||
#define FE_DIVBYZERO /*implementation defined power of 2*/ |
(C++11およびそれ以降) | |
#define FE_INEXACT /*implementation defined power of 2*/ |
(C++11およびそれ以降) | |
#define FE_INVALID /*implementation defined power of 2*/ |
(C++11およびそれ以降) | |
#define FE_OVERFLOW /*implementation defined power of 2*/ |
(C++11およびそれ以降) | |
#define FE_UNDERFLOW /*implementation defined power of 2*/ |
(C++11およびそれ以降) | |
#define FE_ALL_EXCEPT FE_DIVBYZERO | FE_INEXACT | \ FE_INVALID | FE_OVERFLOW | \ |
(C++11およびそれ以降) | |
これらのすべてのマクロ定数(FE_ALL_EXCEPT除く)2の異なる累乗の整数定数式に展開し、独自にサポートされているすべての浮動小数点例外を識別する。それがサポートされている場合、それぞれのマクロは、定義されています.
Original:
All these macro constants (except FE_ALL_EXCEPT) expand to integer constant expressions that are distinct powers of 2, which uniquely identify all supported floating-point exceptions. Each macro is only defined if it is supported.
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.
ビット単位の論理和(OR)他のすべてのFE_ALL_EXCEPTに展開されるマクロ定数
FE_*
は、常に定義されており、浮動小数点例外が実装によってサポートされていない場合はゼロになります。.Original:
The macro constant FE_ALL_EXCEPT, which expands to the bitwise OR of all other
FE_*
, is always defined and is zero if floating-point exceptions are not supported by the implementation.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.
定数
Original: Constant The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
Explanation |
FE_DIVBYZERO
|
ゼロによる除算は、以前の浮動小数点演算中に発生しました
Original: division by zero occurred during the earlier floating-point operation The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
FE_INEXACT
|
結果が不正確:丸めは、以前の浮動小数点演算の結果を格納する必要がありました
Original: inexact result: rounding was necessary to store the result of the earlier floating-point operation The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
FE_INVALID
|
無効な操作:以前の浮動小数点演算が実行できませんでした
Original: invalid operation: the earlier floating-point operation could not performed The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
FE_OVERFLOW
|
以前の浮動小数点演算の結果が表現可能であるには余りにも大きかった
Original: the result of the earlier floating-point operation was too large to be representable The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
FE_UNDERFLOW
|
以前の浮動小数点演算の結果が非正規だった
Original: the result of the earlier floating-point operation was subnormal The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
FE_ALL_EXCEPT
|
ビット単位の論理和(OR)すべてのサポートされている浮動小数点例外の
Original: bitwise OR of all supported floating-point exceptions The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
実装では、追加の浮動小数点例外を識別するために
<cfenv>
で追加のマクロ定数を定義することができます。すべてのそのような定数は少なくともひとつの大文字が続くFE_
で始まる.Original:
The implementation may define additional macro constants in
<cfenv>
to identify additional floating-point exceptions. All such constants begin with FE_
followed by at least one uppercase letter.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> #include <cmath> #pragma STDC FENV_ACCESS ON volatile double zero = 0.0; // volatile not needed where FENV_ACCESS is supported volatile double one = 1.0; // volatile not needed where FENV_ACCESS is supported int main() { std::feclearexcept(FE_ALL_EXCEPT); std::cout << "1.0/0.0 = " << 1.0 / zero << '\n'; if(std::fetestexcept(FE_DIVBYZERO)) { std::cout << "division by zero reported\n"; } else { std::cout << "divsion by zero not reported\n"; } std::feclearexcept(FE_ALL_EXCEPT); std::cout << "1.0/10 = " << one/10 << '\n'; if(std::fetestexcept(FE_INEXACT)) { std::cout << "inexact result reported\n"; } else { std::cout << "inexact result not reported\n"; } std::feclearexcept(FE_ALL_EXCEPT); std::cout << "sqrt(-1) = " << std::sqrt(-1) << '\n'; if(std::fetestexcept(FE_INVALID)) { std::cout << "invalid result reported\n"; } else { std::cout << "invalid result not reported\n"; } }
出力:
1.0/0.0 = inf division by zero reported 1.0/10 = 0.1 inexact result reported sqrt(-1) = -nan invalid result reported
[編集] も参照してください
(C++11) (C++11) (C++11) |
一般的な数学関数で使用されるエラー処理機構を定義しています Original: defines the error handling mechanism used by the common mathematical functions The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (マクロ定数) |