私は最近、return x++; の動作は?という質問をしました。定義された?
結果はほぼ予想どおりでしたが、同様の状況について考えさせられました。
私が書くとしたら
class Foo
{
...
int x;
int& bar() { return x++; }
};
bar が int 参照を返すようになった場合、この動作は定義されていますか? 前の質問に対する答えが文字通り真であり、何が起こっているかを単に抽象化するだけではない場合、リターンが実行されるとすぐに破棄されるスタック変数への参照を返すように思われます。
それが単なる抽象化である場合、ポストインクリメントによって実際にどのような動作が保証されるかを知りたいと思います。