Floating-point environment
Материал из cppreference.com
![]() |
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google.
Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке. Щёлкните здесь, чтобы увидеть английскую версию этой страницы |
Плавающей точкой окружающей среды является набор чисел с плавающей точкой флаги состояния и режимов управления поддерживается реализацией. Это является поточно-местный, каждый поток наследует начальное состояние своего плавающей точкой окружающей среды от родительского потока. Операции с плавающей запятой изменения плавающей точкой флаги состояния указывает ненормальные результаты или вспомогательной информации. Состоянии с плавающей точкой режимов управления влияет на результаты некоторых операций с плавающей запятой.
Оригинал:
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.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Плавающей точкой доступа окружающую среду и изменение имеет смысл только при
#pragma STDC FENV_ACCESS установлен в
ON
. В противном случае реализация свободна предположить, что с плавающей точкой режимов управления всегда по умолчанию, и что с плавающей точкой флаги статуса никогда не проверялись или изменены. На практике несколько текущих компиляторы поддерживают #pragma
явно, но большинство компиляторов позволяют реальный доступ к плавающей точкой окружающей среды все равно.Оригинал:
The floating-point environment access and modification is only meaningful when
#pragma STDC FENV_ACCESS 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 support the #pragma
explicitly, but most compilers allow meaningful access to the floating-point environment anyway.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Содержание |
[править] Типы
Заголовочный файл
<cfenv> | |
fenv_t | Тип представляющая весь плавающей точкой окружающей среды
Оригинал: The type representing the entire floating-point environment Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
fexcept_t | Типа, представляющие все с плавающей точкой флаги состояния коллективно
Оригинал: The type representing all floating-point status flags collectively Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
[править] Функции
(C++11) |
очищает указанный плавающей точкой флаги статуса Оригинал: clears the specified floating-point status flags Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (функция) |
(C++11) |
определяет, какая из указанных плавающей точкой флаги состояния устанавливаются Оригинал: determines which of the specified floating-point status flags are set Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (функция) |
(C++11) |
Возникает указанного плавающей точкой исключений Оригинал: raises the specified floating-point exceptions Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (функция) |
(C++11) (C++11) |
копирует состояние указанного плавающей точкой состояния флагов или с плавающей точкой окружающей среды Оригинал: copies the state of the specified floating-point status flags from or to the floating-point environment Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (функция) |
(C++11) (C++11) |
получает или задает направление округления Оригинал: gets or sets rounding direction Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (функция) |
(C++11) |
сохраняет или восстанавливает текущую плавающей точкой окружающей среды Оригинал: saves or restores the current floating point environment Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (функция) |
(C++11) |
сохраняет окружающую среду, очищает все флаги состояния и игнорирует все ошибок в будущем Оригинал: saves the environment, clears all status flags and ignores all future errors Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (функция) |
(C++11) |
Восстанавливает с плавающей точкой окружающей среды и повышает ранее вызывать исключения Оригинал: restores the floating-point environment and raises the previously raise exceptions Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (функция) |
[править] Макросы
плавающей точкой исключений Оригинал: floating-point exceptions Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (константа-макрос) | |
плавающей точкой округления направлении Оригинал: floating-point rounding direction Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (константа-макрос) | |
(C++11) |
умолчанию с плавающей точкой окружающей среды Оригинал: default floating-point environment Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (константа-макрос) |
[править] Заметки
Плавающей точкой исключений не связанные с C + + исключения. При операции с плавающей запятой поднимает с плавающей точкой исключений, статус плавающей точкой изменения окружающей среды, которые могут быть проверены с std::fetestexcept, но исполнение C + + программ на большинстве реализаций не прерывается.
Оригинал:
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.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Есть компилятор расширений, которые могут быть использованы для создания C + + исключения автоматически всякий раз, когда с плавающей точкой исключение
Оригинал:
There are compiler extensions that may be used to generate C++ exceptions automatically whenever a floating-point exception is raised:
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
- GNU Libc функции
feenableexcept()
позволяет захват с плавающей точкой исключений, которые генерирует сигналSIGFPE
. Если-fnon-call-exceptions
опции компилятора был использован обработчик для этого сигнала может пролить определенный пользователем C + + исключение.Оригинал:GNU libc functionfeenableexcept()
enables trapping of the floating-point exceptions, which generates the signalSIGFPE
. If the compiler option-fnon-call-exceptions
was used, the handler for that signal may throw a user-defined C++ exception.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. - Microsoft WinAPI функции
_control87()
позволяет захват с плавающей точкой исключений, которые генерирует аппаратное исключение, которое может быть преобразовано в C + + исключения с_set_se_translator
.Оригинал:Microsoft WinAPI function_control87()
enables trapping of the floating-point exceptions, which generates a hardware exception, which can be converted to C++ exceptions with_set_se_translator
.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.