Namespaces
Variants

C attribute: noreturn, _Noreturn (since C23)

From cppreference.net

関数が戻らないことを示します。

目次

構文

[[ noreturn ]]
[[ __noreturn__ ]]
[[ _Noreturn ]]
[[ ___Noreturn__ ]]
(非推奨)

説明

関数が戻らないことを示します。

この属性は関数名に適用され、その関数がreturn文の実行や関数本体の終端到達によって戻らないことを指定します( longjmp の実行によって戻る可能性はあります)。この属性を持つ関数が実際に戻った場合、動作は未定義となります。これが検出可能な場合、コンパイラ診断が推奨されます。

これは以前、 _Noreturn キーワードで表されていましたが、C23以降非推奨となり、この属性に置き換えられました。

標準ライブラリ

以下の標準関数は noreturn 属性で宣言されています (C23までは _Noreturn 指定子で宣言されていました):

関連項目

C++ ドキュメント for [[noreturn]]