__declspec(nothrow)

提供: Appmethod Topics
移動先: 案内検索

キーワード(アルファベット順):インデックス への移動


カテゴリ

修飾子拡張キーワード記憶クラス指定子

構文

__declspec( nothrow ) declarator

これは、関数の宣言で使用できる拡張属性 __declspec です。この属性は、宣言された関数およびその関数が呼び出す関数が例外を送出しないことをコンパイラに通知します。同期例外処理モデル(現在はデフォルト)を使うと、コンパイラはそのような関数で特定(スタックを逆にたどれない)オブジェクトの存続期間を追跡する構造を除外でき、コードのサイズを大幅に小さくできます。

次の 3 つの宣言は同じです。

#define WINAPI __declspec(nothrow) __stdcall 
void WINAPI foo1();
void __declspec(nothrow) __stdcall foo2();
void __stdcall foo3() throw();

void __declspec(nothrow) __stdcall foo2(); を使うときは、#define 文で示されているような API 定義を使って 1 組の関数で nothrow を簡単に指定できます。3 つ目の宣言 void __stdcall foo3() throw(); は、C++ 規格で定義されている構文です。

関連項目