std::meta::is_defaulted
来自cppreference.com
| 在标头 <meta> 定义
|
||
| |
(C++26 起) | |
如果 r 表示预置函数,则返回 true,否则返回 false。
参数
| r | - | 一个反射值 |
返回值
如果 r 表示预置函数,则为 true,否则为 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; // 隐式弃置
// operator== 因为 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<=>));
参阅
(C++26) |
检查反射是否表示函数 (函数) |
(C++26) |
检查反射是否表示用户提供的函数 (函数) |