A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://en.cppreference.com/w/cpp/language/../atomic/../language/../numeric/fenv.html below:

Floating-point environment (since C++11) - cppreference.com

Floating-point environment

The floating-point environment is the set of floating-point status flags and control modes supported by the implementation. It is thread-local. Each thread inherits the initial state of its floating-point environment from the parent thread. Floating-point operations modify the floating-point status flags to indicate abnormal results or auxiliary information. The state of floating-point control modes affects the outcomes of some floating-point operations.

The floating-point environment access and modification is only meaningful when #pragma STDC FENV_ACCESS is supported and is set to ON. Otherwise the implementation is free to assume that floating-point control modes are always the default ones and that floating-point status flags are never tested or modified. In practice, few current compilers, such as HP aCC, Oracle Studio, or IBM XL, support the #pragma explicitly, but most compilers allow meaningful access to the floating-point environment anyway.

[edit] Types the type representing the entire floating-point environment
(typedef) [edit] the type representing all floating-point status flags collectively
(typedef) [edit] [edit] Functions clears the specified floating-point status flags
(function) [edit] determines which of the specified floating-point status flags are set
(function) [edit] raises the specified floating-point exceptions
(function) [edit] copies the state of the specified floating-point status flags from or to the floating-point environment
(function) [edit] gets or sets rounding direction
(function) [edit] saves or restores the current floating-point environment
(function) [edit] saves the environment, clears all status flags and ignores all future errors
(function) [edit] restores the floating-point environment and raises the previously raised exceptions
(function) [edit] [edit] Macros [edit] Notes

The floating-point exceptions are not related to the C++ exceptions. When a floating-point operation raises a floating-point exception, the status of the floating-point environment changes, which can be tested with std::fetestexcept, but the execution of a C++ program on most implementations continues uninterrupted.

There are compiler extensions that may be used to generate C++ exceptions automatically whenever a floating-point exception is raised:

[edit] See also

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4