Namespaces
Variants
Actions

FE_DFL_ENV

From cppreference.com
< cpp‎ | numeric‎ | fenv
 
 
Numerics library
 
Floating-point environment
Functions
(C++11)
(C++11)(C++11)
(C++11)(C++11)
(C++11)
(C++11)
Macro constants
FE_DFL_ENV
(C++11)
 
Defined in header <cfenv>
#define FE_DFL_ENV /*implementation defined*/
(since C++11)

The macro constant FE_DFL_ENV expands to an expression of type const std::fenv_t *, which points to a full copy of the default floating-point environment, that is, the environment as loaded at program startup.

Additional macros that begin with FE_ followed by uppercase letters, and have the type const std::fenv_t *, may be supported by an implementation.

[edit] Example

Run this code
#include <cfenv>
#include <iostream>
// #pragma STDC FENV_ACCESS ON
 
void show_env()
{
 const int e = std::fetestexcept (FE_ALL_EXCEPT );
 if (e & FE_DIVBYZERO )
 std::cout << "division by zero is raised\n";
 if (e & FE_INEXACT )
 std::cout << "inexact is raised\n";
 if (e & FE_INVALID )
 std::cout << "invalid is raised\n";
 if (e & FE_UNDERFLOW )
 std::cout << "underflow is raised\n";
 if (e & FE_OVERFLOW )
 std::cout << "overflow is raised\n";
 
 switch (std::fegetround ())
 { 
 case FE_DOWNWARD :
 std::cout << "rounding down\n";
 break;
 case FE_TONEAREST :
 std::cout << "rounding to nearest\n";
 break;
 case FE_TOWARDZERO :
 std::cout << "rounding to zero\n";
 break;
 case FE_UPWARD :
 std::cout << "rounding up\n";
 break;
 }
}
 
int main()
{
 std::cout << "On startup:\n";
 show_env();
 
 std::feraiseexcept (FE_UNDERFLOW | FE_OVERFLOW );
 std::fesetround (FE_UPWARD );
 
 std::cout << "\nBefore restoration:\n";
 show_env();
 
 std::fesetenv (FE_DFL_ENV);
 
 std::cout << "\nAfter reset to default:\n";
 show_env();
}

Output:

On startup: 
rounding to nearest
 
Before restoration: 
underflow is raised
overflow is raised
rounding up
 
After reset to default: 
rounding to nearest

[edit] See also

saves or restores the current floating-point environment
(function) [edit]
(C++11)
restores the floating-point environment and raises the previously raised exceptions
(function) [edit]
C documentation for FE_DFL_ENV
Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/numeric/fenv/FE_DFL_ENV&oldid=160714"

AltStyle によって変換されたページ (->オリジナル) /