内置候选运算符

发布于 2024-10-01 10:36:20 字数 281 浏览 4 评论 0原文

C++03 $13.6/1- "[...]如果有 用户编写的候选人具有相同的 名称和参数类型作为内置 候选算子函数, 内置运算符功能被隐藏 并且不包含在集合中 候选函数。”

我不确定标准中这句话的意图。是否可以定义一个与内置运算符具有相同名称和类型的用户定义的候选函数?

例如,下面的内容显然是错误的。

int operator+(int)

那么这句话是什么意思呢?

C++03 $13.6/1- "[...]If there is a
user-written candidate with the same
name and parameter types as a built-in
candidate operator function, the
built-in operator function is hidden
and is not included in the set of
candidate functions."

I am not sure about the intent of this quote from the Standard. Is it possible to define a user defined candidate function that has the same name and type as a built-in operator?

e.g. the below which is clearly wrong.

int operator+(int)

So what does this quote mean?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

狂之美人 2024-10-08 10:36:20

只需在 13.6 中选择其中之一即可。喜欢

对于每个指针或枚举类型 T,都存在以下形式的候选运算符函数

布尔运算符<(T, T);
布尔运算符>(T, T);
布尔运算符<=(T, T);
布尔运算符>=(T, T);
布尔运算符==(T, T);
布尔运算符!=(T, T);

对于每个指针或枚举类型 T,都存在So

enum Kind { Evil, Good };
bool operator<(Kind a, Kind b) { ... }

Just pick one of those in 13.6. Like

For every pointer or enumeration type T, there exist candidate operator functions of the form

bool operator<(T, T);
bool operator>(T, T);
bool operator<=(T, T);
bool operator>=(T, T);
bool operator==(T, T);
bool operator!=(T, T);

So

enum Kind { Evil, Good };
bool operator<(Kind a, Kind b) { ... }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文