std::meta::is_user_declared
来自 zh.cppreference.net
| 定义于头文件 <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) 检查反射是否表示用户提供的函数 |