std::meta::is_defaulted
来自 zh.cppreference.net
| 定义于头文件 <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() {}
另见
(C++26) |
检查反射是否表示一个函数 (函数) |
(C++26) |
检查反射是否表示一个用户提供的函数 (函数) |