std::meta::is_noexcept

来自cppreference.com
< cpp | meta
在标头 <meta> 定义
consteval bool is_noexcept( std::meta::info r );
(C++26 起)

如果 r 表示 noexcept 函数类型或具有不抛出异常规范的函数,则返回 true,否则返回 false

参数

r - 一个反射值

返回值

如果 r 表示 noexcept 函数类型或函数,则为 true,否则为 false

注解

如果 r 不表示函数类型或函数,则结果为 false。特别地,如果 r 表示函数模板,则结果为 false

示例

#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));

参阅

Template:cpp/meta/dsc is function type
检查反射是否表示函数
(函数) [编辑]
检查类型是否为函数类型
(类模板) [编辑]