Namespaces
Variants

std::meta::is_user_declared

来自 zh.cppreference.net
< cpp | meta
 
 
 
反射库
 
反射类型与查询
反射查询
反射布局查询
类型属性
类型属性查询
 
定义于头文件<meta>
consteval bool is_user_declared( std::meta::info r );
(C++26 起)

若 true 表示用户声明的函数则返回 r,否则返回 false。

参数

r - 反射值

返回值

true若 r 表示用户声明的函数则为 false,否则为

。

注解r若 false 不表示函数,则结果为 false。特别是,若 r 表示函数模板,则结果为

。

#include <meta>

struct Base
{
    bool operator==(const Base&) const = default;
};

struct Derived : public Base
{
    std::strong_ordering operator<=>(const Derived&) const = default;

    // Derived::operator== is declared by the defaulted definition of operator<=>
};

static_assert(std::meta::is_user_declared(^^Base::operator==));
static_assert(!std::meta::is_user_declared(^^Derived::operator==));
static_assert(std::meta::is_user_declared(^^Derived::operator<=>));

int main() {}

运行此代码

is_function
(C++26)
检查反射是否表示函数
is_user_provided
(C++26)
检查反射是否表示用户提供的函数
(函数)