std::meta::is_user_declared

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

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

参数

r - 一个反射值

返回值

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

注解

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

示例

#include <meta>

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

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

    // Derived::operator== 因 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<=>));

参阅

检查反射是否表示函数
(函数) [编辑]
检查反射是否表示用户提供的函数
(函数) [编辑]