インテル® C++ コンパイラー 17.0 デベロッパー・ガイドおよびリファレンス
ほかの変数とキャッシュラインのフォルス・シェアリングを引き起こさないように、定義された変数にパディングを追加/アライメントします。
Windows®: __declspec(avoid_false_share(identifier))variable definition |
Linux*: __attribute__((avoid_false_share(identifier)))variable definition |
identifier |
1 つ以上の変数を識別する文字列を指定します。同じ identifier の変数は、フォルス・シェアリングからの保護を必要としません。 |
variable definition |
パディングを追加/アライメントする変数を指定します。 |
このキーワードは、identifier が異なるほかの変数とキャッシュラインを共有しないように、パディングを追加したり、アライメントして変数を割り当てるようにコンパイラーに指示します。このキーワードは、関数スコープ、グローバルスコープ、または名前空間スコープの変数定義で使用します。非スタティック・クラス・メンバーや関数引数では使用できません。
identifier を指定すると、variable definition は、同じ identifier で宣言されたほかの変数とのフォルス・シェアリングに対して保護を必要としません。variable definition を関数スコープで指定すると、identifier の有効範囲は現在の関数になります。variable definition を名前空間スコープやグローバルスコープで指定すると、identifier の有効範囲は現在のコンパイル単位になります。
このキーワードは、スカラーと配列でサポートされています。構造体フィールド、関数引数、関数、参照ではサポートされていません。