Namespaces
Variants

std::meta::is_defaulted

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

返回 true 若 r 表示一个 默认函数。否则返回 false。

参数

r - 一个反射值

返回值

true 若 r 表示一个默认函数;否则 false。

示例

#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
{
    std::strong_ordering operator<=>(const Derived&) const = default; // implicitly deleted
    // operator== is implicitly defaulted due to the defaulted definition of operator<=>
};

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

int main() {}

另见

检查反射是否表示一个函数
(函数)
检查反射是否表示一个用户提供的函数
(函数)