Пространства имён
Варианты
Действия

Implementation defined behavior control

Материал из cppreference.com

 
 
Язык С++
Общие темы
Управление программой
Операторы условного выполнения
Операторы повторения
Операторы перехода
Функции
объявление функции
объявление лямбда-функции
шаблон функции
спецификатор inline
спецификаторы исключений (устарело)
спецификатор noexcept (C++11)
Исключения
Пространства имён
объявление пространства имён
псевдонимы пространства имён
Типы
спецификатор decltype (C++11)
Спецификаторы
cv-спецификаторы
спецификаторы продолжительности хранения
спецификатор constexpr (C++11)
спецификатор auto (C++11)
спецификатор alignas (C++11)
Инициализация
Литералы
Выражения
Утилиты
Типы
typedef-объявление
объявление псевдонима типа (C++11)
атрибуты (C++11)
Приведения типов
неявные преобразования
const_cast-преобразование
static_cast-преобразование
dynamic_cast-преобразование
reinterpret_cast-преобразование
C-подобное и функциональное приведение типов
Выделение памяти
Классы
Особые свойства классовых функций
Специальные функции-члены
Шаблоны
шаблон класса
шаблон функции
специализация шаблона
упакованные параметры (C++11)
Разное
Ассемблерные вставки
 
 
Реализация определенное поведение контролируется директивой #pragma.
Original:
Implementation defined behavior is controlled by #pragma directive.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Содержание

[править] Синтаксис

#pragma pragma_params

[править] Объяснение

Pragma директива контролирует реализацию конкретных поведение компилятора, такие как отключение предупреждений компилятора или изменением требований по выравниванию. Любая директива, которая не признала игнорируются.
Original:
Pragma directive controls implementation-specific behavior of the compiler, such as disabling compiler warnings or changing alignment requirements. Any pragma that is not recognized is ignored.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[править] Стандартный прагм

Следующие три прагм определяется стандартом языка
Original:
The following three pragmas are defined by the language standard:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
#pragma STDC FENV_ACCESS arg (1)
#pragma STDC FP_CONTRACT arg (2)
#pragma STDC CX_LIMITED_RANGE arg (3)
где arg либо ON или OFF или DEFAULT.
Original:
where arg is either ON or OFF or DEFAULT.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
1)
Если установлено ON, сообщает компилятору, что программа будет доступа или изменения плавающей точкой окружающей среды, что означает, что оптимизаций, которые могут подорвать флаг испытания и изменения режима (например, глобальные общих подвыражений, код движения, и постоянная складывающиеся) запрещено. Значение по умолчанию определяется реализацией, как правило, OFF.
Original:
If set to ON, informs the compiler that the program will access or modify плавающей точкой окружающей среды, which means that optimizations that could subvert flag tests and mode changes (e.g., global common subexpression elimination, code motion, and constant folding) are prohibited. The default value is implementation-defined, usually OFF.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
2)
Позволяет' договаривающиеся с плавающей точкой выражения, то есть оптимизации, которые опускать ошибки округления и с плавающей точкой исключений, которые можно было бы наблюдать, если выражение оценивали именно так, как написано. Значение по умолчанию определяется реализацией, как правило, ON.
Original:
Allows contracting of floating-point expressions, that is optimizations that omit rounding errors and floating-point exceptions that would be observed if the expression was evaluated exactly as written. The default value is implementation-defined, usually ON.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
3)
Сообщает компилятору, что умножение, деление, и абсолютное значение комплексных чисел могут использовать упрощенные математические формулы, несмотря на возможность промежуточной переполнения. Диапазон значений, переданных для тех функций, как ожидается, будет ограниченным. Значение по умолчанию OFF
Original:
Informs the compiler that multiplication, division, and absolute value of complex numbers may use simplified mathematical formulas, despite the possibility of intermediate overflow. The range of the values passed to those function is expected to be limited. The default value is OFF
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[править] Внешние ссылки