|
#define FLT_EVAL_METHOD /* implementation-defined */
|
|
(начиная с C++11)
|
|
|
|
|
Определяет точность, с которой выполняются все операции с плавающей запятой, кроме присваивания и приведения типов.
|
Значение
|
Объяснение
|
|
отрицательные значения кроме
-
1
|
поведение, определяемое реализацией
|
|
-
1
|
точность по умолчанию неизвестна
|
|
0
|
все операции и константы вычисляются в диапазоне и точности используемого типа. Дополнительно,
float_t
и
double_t
эквивалентны
float
и
double
соответственно
|
|
1
|
все операции и константы вычисляются в диапазоне и точности
double
. Дополнительно, и
float_t
, и
double_t
эквивалентны
double
|
|
2
|
все операции и константы вычисляются в диапазоне и точности
long
double
. Дополнительно, и
float_t
, и
double_t
эквивалентны
long
double
|
Примечания
Независимо от значения
FLT_EVAL_METHOD
, любое выражение с плавающей точкой может быть
свернуто
, то есть вычислено так, как если бы все промежуточные результаты имели бесконечный диапазон и точность (если только
#pragma
STDC FP_CONTRACT
не отключена).
Приведение и присваивание удаляют любой избыточный диапазон и точность: это моделирует действие сохранения значения из регистра FPU с расширенной точностью в стандартную ячейку памяти.
Смотрите также