++i が lvalueになれるから

すげーぜ C++!-ときどきの雑記帖さんより、C++ では ++i が lvalue になれるという話。


・・・知らなかったです。

インクリメント/デクリメントオペレータをオーバーロードするとき、前置は参照で、後置は値で返すのが定石ですが*1、後置が参照で返せるわけがないのは当然として、前置がなんで参照で返すべきなのか(どっちでもいいじゃん、ややっこしいなぁ、と)、イマイチ釈然と来ていなかったの三猫ですが、ようやく合点がいきました。lvalue になるんじゃ参照で返さないとそりゃダメです。

それにしても、全然嬉しくないわ、コレ。

*1:たしか C++ プライマーに書いてあって、組み込み型のと挙動をあわせた方がいいから とかいう理由が書いてあったと思う