8

C++03 $13.6/1-》[...]如果有用户编写的候选与内置候选算子函数同名、参数类型相同,则内置算子函数被隐藏,不包括在内在候选函数集中。”

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

例如下面这显然是错误的。

int operator+(int)

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

4

1 回答 1

1

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

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

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

所以

enum Kind { Evil, Good };
bool operator<(Kind a, Kind b) { ... }
于 2010-11-09T07:00:05.043 回答