Namespaces
Variants

std::meta::is_user_provided

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

返回 true 若 r 表示一个用户提供的函数。否则返回 false。

参数

r - 一个反射值

返回值

true 若 r 表示一个用户提供的函数;否则 false。

注解

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

示例

#include <compare>
#include <meta>

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

    std::strong_ordering operator<=>(const Base&) const = delete;
};

bool Base::operator==(const Base&) const = default;

struct Derived : public Base
{
    bool operator==(const Derived&) const { return true; }

    std::strong_ordering operator<=>(const Derived&) const = default;
};

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

int main() {}

参阅

— 检查反射是否表示一个函数
(函数)
— 检查反射是否表示一个删除的函数
(函数)
— 检查反射是否表示一个默认的函数
(函数)