/volatile (интерпретация ключевого слова volatile)
Задает способ интерпретации ключевого слова volatile.
/volatile:{iso|ms}
Аргументы
/volatile:iso
Выделяет строгую семантику volatile, как определено стандартным языком С++ для ISO-образов. Семантика получения и освобождения не гарантируется при переменном обращении. Если компилятор нацелен на ARM, это интерпретация volatile по умолчанию./volatile:ms
Выделяет расширенную семантику volatile Microsoft, которая добавляет гарантии упорядочения памяти за пределами стандартного языка С++ для ISO-образов. Семантика получения и освобождения гарантируется при переменном обращении. Однако этот параметр также заставляет компилятор генерировать барьеры памяти оборудования, которые могут добавлять значительную нагрузку на ARM и другие архитектуры со слабым упорядочиванием памяти. Если компилятор нацелен на какую-либо платформу, кроме ARM, это интерпретация volatile по умолчанию.
Заметки
Настоятельно рекомендуется использовать /volatile:iso вместе с явными примитивами синхронизации и встроенными компилятора при работе с памятью, используется отладкой потоков. Для получения дополнительной информации см. volatile (C++).
Если перенести существующий код или изменить этот параметр посередине проекта, возможно, имеет смысл включить предупреждение C4746, чтобы определить расположения кода, затронутые отличиями в семантике.
Значение #pragma эквивалентно элементу управления этот параметр.
Задание параметра компилятора /volatile в Visual Studio
Откройте диалоговое окно Страницы свойств проекта. Для получения дополнительной информации см. Открытие свойств страниц проекта.
Выберите папку C/C++.
Выберите страницу свойств Командная строка.
В поле Дополнительные параметры добавьте /volatile: ISO или /volatile: отсутствуют.