fvisibility

グローバルシンボルのデフォルトの可視属性、または宣言、関数、変数内のシンボルの可視属性を指定します。これは C++ 固有のコンテンツです。DPC++ には適用されません。

構文

Linux*:

-fvisibility=arg

-fvisibility-global-new-delete-hidden

-fvisibility-inlines-hidden

-f[no]visibility-inlines-hidden-static-local-var

-fvisibility-ms-compat

Windows*:

なし

引数

arg

可視属性の設定を指定します。設定可能な値は以下のとおりです。

default

可視属性を default に設定します。シンボルは、この共有オブジェクトの外で可視です。

つまり、ほかのコンポーネントはシンボルを参照したり、そのシンボル定義を別のコンポーネントの同じ名前の定義で上書き (プリエンプト) できます。

hidden

可視属性を hidden に設定します。シンボルは、この共有オブジェクトの外で可視ではありません

ほかのコンポーネントは、直接、シンボルを参照できません。

internal

これは、hidden と同じです。

protected

可視属性を protected に設定します。シンボルは、ダイナミックリンカーに対して可視ですが、常にこの共有オブジェクト内のオブジェクトに動的に解決されます。

つまり、ほかのコンポーネントはシンボルを参照できますが、別のコンポーネントの同じ名前の定義で上書きすることはできません。

この値は、すべてのターゲットでサポートされていません。

デフォルト

-fvisibility=default

コンパイラーは、シンボルの可視属性を default に設定します。

説明

このオプションは、グローバルシンボルのデフォルトの可視属性 (-fvisibility=arg)、または宣言、関数、変数内のシンボルの可視属性を指定します。

次の表は、サポートされている -fvisibility オプションを示します。

オプション

説明

-fvisibility=arg

すべてのグローバル宣言のシンボルの可視属性を設定します。

上記の「引数」で指定されているように、arg には hidden、internal、default、または protected のいずれかを指定できます。

-fvisibility-global-new-delete-hidden

グローバルの C++ 演算子 new と delete の宣言を hidden 可視属性に設定します。

-fvisibility-inlines-hidden

デフォルトでインラインの C++ メンバー関数を hidden 可視属性に設定します。

-fvisibility-inlines-hidden-static-local-var
-fno-visibility-inlines-hidden-static-local-var

-fvisibility-inlines-hidden を有効にすると、インラインの C++ メンバー関数の静的変数もデフォルトで hidden 可視属性になります。

-fvisibility-inlines-hidden-static-local-var オプションを無効にするには、-fno-visibility-inlines-hidden-static-local-var オプションを指定します。

-fvisibility-ms-compat

グローバル型を default 可視属性に設定して、グローバル関数とグローバル変数を hidden 可視属性に設定します。

-fvisibility オプションがコマンドラインで複数指定された場合は、最後の指定がほかよりも優先されます。

次の項目は、可視属性設定の優先順を示しています (可視属性が高いものから低いものにリストしています)。

IDE オプション

なし

代替オプション

なし