std::meta::is_user_provided
来自 zh.cppreference.net
| 定义于头文件 <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() {}
参阅
(C++26) |
— 检查反射是否表示一个函数 (函数) |
(C++26) |
— 检查反射是否表示一个删除的函数 (函数) |
(C++26) |
— 检查反射是否表示一个默认的函数 (函数) |