预先递增运算符下面是两个gcc
和clang
编译OK:返回void
class A{
public:
void operator++(){
printf("A++\n");
// return *this;
}
};
不 “正确” 的方式来实现这种操作的是:
class A{
public:
A &operator++(){
printf("A++\n");
return *this;
}
};
是void
版本是黑客?我从来没有见过这样的语法。 Google搜索仅返回一篇有关IBM的教育论文。
为什么这不是广泛使用的方式来实现预增量对返回自引用。
你所要求的不是很清楚,但是如果你试图在需要左值的表达式中使用它,你会下注一个错误。我认为标准中没有什么要求您正确实施。 – juanchopanza
我会编辑问题 – Nick
@juanchopanza:“如果你尝试使用它”:怎么样? –