ich gelernt habe implementieren: Ein Benutzer definierte postfix Inkrementoperator sollte ein konstantes Objekt zurückkehren zu verhalten wie ein fundamentaler arithmetischer Typ:Wie Postfix Inkrementoperator
int i = 0;
i++ = 42; // error, i++ is pr-value
++i = 42; // ok, ++i is l-value
so für Klasse Widget sollte es wie deklariert werden
const Widget operator++(int);
...
Widget w1, w2;
w1++ = w2; // error, fine, same as i++ = 42
ohne const, würde es kompilieren. Aber mit dieser an Ort und Stelle, ist es nicht möglich, zu nennen
void f(Widget&&);
f(w1++); // error, invalid initialization of Widget&& from expression const Widget
was schade, denn w1 ++ ist ein r-Wert Ausdruck und es ist Konstantheit keinen Einfluss hat, weil es sich um eine vorübergehende ist, ist es nicht?
Nun, wie sollte Operator ++ (int) deklariert werden? Danke für die Beratung.
So sollten diese Operatoren http://en.cppreference.com/w/cpp/language/operator_incdec deklariert werden – DeiDei