Bruce Eckel napisał, że zwrócony obiekt zostanie utworzony w miejscu jego wywołania (a nie w ciele operator++), tzw Optymalizacja zwracania wartości.
G++ daje mi warning, kto ma racje ?
class A
{
public:
int a;
A(int el): a(el) {}
const A& operator++()
{
a++;
return *this;
}
const A& operator++(int)
{
return A(a++);
}
};
Na początku rozdziału tak to pokazał, ale to jest na pewno źle jak na moje oko.
const A& operator++(int)
{
A tmp(a);
a++;
return tmp;
}