/volatile (volatile キーワードの解釈を)
[volatile] のキーワードを解釈するのかを指定します。
/volatile:{iso|ms}
引数
/volatile:iso
ISO C++ 標準の言語で定義されている volatile の厳密な意味を選択します。またはリリースのセマンティクスを保証する揮発性アクセスで取得します。コンパイラで ARM を対象とする場合は volatileの既定の解釈があります。/volatile:ms
Microsoft で volatile 拡張されているセマンティクスを選択して、ISO C++ 標準の言語を超えるメモリの命令の保証を追加。またはリリースのセマンティクスを保証する揮発性アクセスで取得します。ただし、このオプションは、コンパイラに ARM およびそのほかの弱い順序付けのアーキテクチャ メモリのオーバーヘッドを追加できるハードウェアのメモリ バリアを生成します。コンパイラで ARM を除くプラットフォームを対象とする場合は volatileの既定の解釈があります。
解説
これは、スレッド間で共有されるメモリを扱うときに、/volatile:iso、およびコンパイラの組み込みは明示的な同期プリミティブとともに使用することをお勧めします。詳細については、「揮発性 (C++)」を参照してください。
既存のコードを移植するか、プロジェクト中にこのオプションを変更した場合、セマンティクスの違いによって影響を受けるコード位置を識別することを警告の C4746 を有効にすると便利場合があります。
同等の #pragma がこのオプションを設定すると、ありません。
Visual Studio の /volatile のコンパイラ オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。詳細については、「方法 : プロジェクト プロパティ ページを開く」を参照してください。
[C/C++] フォルダーを選択します。
[コマンド ライン] のプロパティ ページを選択します。
[追加のオプション] ボックスに、/volatile:iso か /volatile:msを追加します。