__declspec(noreturn)
カテゴリ
修飾子(C++)、拡張キーワード、記憶クラス指定子(C++)
構文
__declspec( noreturn ) declarator
この __declspec 属性は関数が戻らないことをコンパイラに通知します。 結果として、__declspec(noreturn) 関数への呼び出しに続く、コードに到達できないということをコンパイラは認識します。
値を返さない制御パスがある関数を検出すると、コンパイラは警告を生成します。 値を返さない関数のために制御パスに到達できない場合、__declspec(noreturn) を使用してこの警告やエラーを回避できます。
例
次のコードを考えます。 else 句には、return 文がありません。したがって、プログラマは fatal を __declspec(noreturn) として宣言してエラーまたは警告メッセージを回避します。
__declspec(noreturn) extern void fatal () { // Code omitted } int foo() { if(...) return 1; else if(...) return 0; else fatal(); }