Joh*_*itb 18 c++ language-lawyer operator-keyword c++11 trailing-return-type
我试图在另一个函数的尾随返回类型中重用运算符的返回类型,但不幸的是clang不接受它
struct A {
int operator[](int);
auto at(int i) -> decltype((*this)[i]);
};
Run Code Online (Sandbox Code Playgroud)
Clang说我班上没有算子[].Gcc确实接受了我的代码.我的代码真的无效吗?
小智 3
我想说 clang 是正确的,因为 13.3.1.2p3 (第一个项目符号)。
对于操作数
@为 cv 无限定版本为 的类型的一元运算符T1,以及@左操作数为 cv 无限定版本为 的类型T1且右操作数为 cv 无限定版本的类型的二元运算符T2,为 3候选函数集、指定成员候选函数、非成员候选函数和内置候选函数的构造如下:
- 如果
T1是完整类类型,则候选成员集合是T1::operator@(13.3.1.1.1) 的合格查找结果;否则,候选成员集合为空。
(强调由@sehe添加)
| 归档时间: |
|
| 查看次数: |
462 次 |
| 最近记录: |