インテル® C++ コンパイラー 17.0 デベロッパー・ガイドおよびリファレンス

avoid_false_share

ほかの変数とキャッシュラインのフォルス・シェアリングを引き起こさないように、定義された変数にパディングを追加/アライメントします。

構文

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 の有効範囲は現在のコンパイル単位になります。

このキーワードは、スカラーと配列でサポートされています。構造体フィールド、関数引数、関数、参照ではサポートされていません。