__declspec
カテゴリ
修飾子(C++)、拡張キーワード、記憶クラス指定子(C++)
構文
__declspec(<decl-modifier>)
説明
__declspec キーワードを使用して、変数または関数の記憶クラス属性を指定します。
__declspec キーワードは、宣言文内に柔軟に記憶クラス修飾子を配置できるように、記憶クラス修飾子の属性構文を拡張します。 古い形式の修飾子は修飾される識別子の直前にしか配置できませんでしたが、__declspec キーワードとその引数は、宣言リスト内の任意の場所に配置できます。
__export void f(void); // illegal
void __export f(void) // correct
void __declspec(dllexport) f(void); // correct
__declspec(dllexport)void f(void); // correct
class __declspec(dllexport) ClassName { } // correct
修飾子
指令 | 説明 | 代替表現 |
---|---|---|
__declspec(allocate("SEGNAME")) | エンティティが割り当てられるセグメントを指定します。 | #pragma codeseg |
__declspec(delphiclass) | このクラスが TObject から派生したもので、Delphi 互換および VCL 互換でなければならないことを指定します。 | |
__declspec(delphirecord) | この構造体が(Delphi コードから自動生成された C++ コード内の)Delphi レコードであることを指定します。 | |
__declspec(delphireturn) | この型が関数呼び出しで値渡しが可能なように VCL 互換でなければならないことを指定します。 | |
__declspec(delphirtti) | このクラスの public メンバまたは published メンバには Delphi RTTI を生成しなければならないことを指定します。 | |
__declspec(dllexport) | 共有ライブラリのビルド時にはこのエンティティをインポートしなければならないことを指定します。 | _export、__export |
__declspec(dllimport) | 共有ライブラリのビルド時にはこのエンティティをエクスポートしなければならないことを指定します。 | _import、__import |
__declspec(dynamic) | この関数が dynamic(virtual と類似)であることを指定します。 | |
__declspec(naked) | この関数にはプロローグ コードもエピローグ コードもないことを指定します。 | |
__declspec(hidesbase) | このメンバ関数はいかなる基底クラスの同名のいかなる仮想関数とも関係がないことを指定します。 | |
__declspec(noreturn) | この関数には戻り値がないことを指定します。 | #pragma noretval、C++11 属性 noreturn |
__declspec(nothrow) | この関数はいかなる例外も送出しないことを指定します。 | |
__declspec(novtable) | このクラスの vtable を初期化するコードが生成されないことを指定します。 | |
__declspec(package) | このクラス定義はパッケージ内にコンパイルできることを指定します。 | |
__declspec(pascalimplementation) | このクラスは Delphi で定義されることを指定します。 | |
__declspec(property) | 読み取り/書き込みアクセサの指定されたプロパティを定義します。 | __property |
__declspec(selectany) | このグローバル データは複数のソース ファイルで初期化され、その定義には任意の初期化コードを選択できることを指定します。 | |
__declspec(thread) | このエンティティはスレッドに対してローカルであること(スレッド ローカル ストレージ)を指定します。 | __thread |
__declspec(uuid("ComObjectGUID")) | クラスにグローバル一意識別子(GUID)を関連付けるためのものです。 |