【问题标题】:Built-in operator candidates内置运算符候选
【发布时间】:2010-11-09 03:43:53
【问题描述】:

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

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

例如以下显然是错误的。

int operator+(int)

那么这句话是什么意思?

【问题讨论】:

标签: c++ built-in overload-resolution candidate


【解决方案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) { ... }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 2018-09-14
    • 2011-03-08
    • 1970-01-01
    • 2017-10-20
    相关资源
    最近更新 更多