gpt4 book ai didi

c++ - 枚举比较运算符的重新定义

转载 作者:行者123 更新时间:2023-11-30 03:44:51 31 4
gpt4 key购买 nike

<分区>

为什么允许以下运算符重载?

enum class e { a, b, };

constexpr
bool operator == (e l, e r)
{ return l != r; }

constexpr
bool operator != (e l, e r)
{ return !(l == r); }

static_assert(e::a == e::b, "==");
static_assert(e::a != e::a, "!=");

Live example (C++11) .

Live example (C++03) .

我总是将 enum 视为内置类型。我无法为指向我的自定义类型的指针重新定义 operator ==(但我想要!),但可以为相同类型的一对 enum 执行此操作。但是,两者都有内置版本的 operator ==operator !=

这种(似乎是错误的)事情的可能目的是什么?如何利用它获利?

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com