noexcept (*)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/11/26 23:51 UTC 版)
「キーワード (C++)」の記事における「noexcept (*)」の解説
関数に例外指定を付与する。 //noexceptはどんな例外も投げないことを示す。int func2() noexcept;//noexceptはコンパイル時定数となる引数を取ることができ、trueならnoexceptと同じ。int func3() noexcept(true);//falseならあらゆる例外を投げる可能性がある。int func4() noexcept(false);//noexceptと等価な記述。int func5() throw();//noexcept(false)と等価な記述。int func6() throw(...);//この関数から投げられる例外はstd::exception型(とその派生クラス型)かint型しかありえないことを示す。この用法は非推奨。int func7() throw(std::exception, int) {/* ~ */} C++11以降は、throwを用いた例外指定は推奨されない。C++03以前でも、throwを用いた例外指定は例外安全のうち例外を投げない表明としてfunc5のように型を無指定にして用いられる場合が大半であった。 また、noexceptは例外指定の有無を判定する式としても用いられる。 //b2はtruebool b2 = noexcept(func2()+1);//b4はfalsebool b4 = noexcept(func4()+func7());
※この「noexcept (*)」の解説は、「キーワード (C++)」の解説の一部です。
「noexcept (*)」を含む「キーワード (C++)」の記事については、「キーワード (C++)」の概要を参照ください。
- noexceptのページへのリンク