次の方法で共有


noreturn

Microsoft 固有の仕様 →

この __declspec 属性は、コンパイラに、関数が戻らないことを示します。 結果として、コンパイラは __declspec(noreturn) 関数への呼び出しに続くコードは制御が渡らないことを認識します。

コンパイラで値を返さないコントロール パスの関数が検出されると、警告 (C4715) またはエラー メッセージ (C2202) が生成されます。 関数が値を返さないためコントロール パスに到達できない場合は、__declspec(noreturn) を使用してこの警告やエラーを回避できます。

注意

返されると予想される関数へ __declspec(noreturn) を追加すると、未定義の動作になることがあります。

使用例

次の例では、else 句に return ステートメントは含まれていません。 fatal を __declspec(noreturn) として宣言すると、エラーまたは警告メッセージを回避できます。

// noreturn2.cpp
__declspec(noreturn) extern void fatal () {}

int main() {
   if(1)
     return 1;
   else if(0)
     return 0;
   else
     fatal();
}

参照

関連項目

__declspec

C++ キーワード