std::meta::is_noexcept
ja.cppreference.net より
| ヘッダで定義 <meta>
|
||
consteval bool is_noexcept( std::meta::info r );
|
(C++26 以上) | |
を返す true もし r が noexcept 関数型または例外を投げない例外指定を持つ関数を表す場合。そうでなければ false を返す。
引数
| r | - | リフレクション値 |
戻り値
true の場合 r は noexcept 関数型または関数を表す。そうでなければ false。
ノート
もし r が関数型または関数を表さない場合、結果は false です。特に、結果は false の場合 r は関数テンプレートを表す。
例
このコードを実行
#include <meta>
template<bool Cond>
void f() noexcept(Cond);
static_assert(std::meta::is_noexcept(^^f<true>));
static_assert(!std::meta::is_noexcept(^^f<false>));
static_assert(!std::meta::is_noexcept(^^f));
using fty = decltype(f<true>);
static_assert(std::meta::is_noexcept(^^fty));
int main() {}
関連項目
Template:cpp/meta/dsc is function type(C++26) |
リフレクションが関数を表すかどうかを調べる (関数) |
(C++11) |
型が関数型かどうかを調べる (クラステンプレート) |