Я недавно задал вопрос Поведение return x ++;определены?
Результат был примерно таким, как я ожидал, но заставил меня задуматься о подобной ситуации.
Если бы я написал:
class Foo
{
...
int x;
int& bar() { return x++; }
};
Где бартеперь возвращает ссылку на int, это поведение определено?Если ответ на предыдущий вопрос является буквально верным, а не просто удобной абстракцией происходящего, может показаться, что вы вернете ссылку на переменную стека, которая будет уничтожена, как только будет выполнен возврат.
Если это просто абстракция, мне было бы интересно узнать, какое поведение на самом деле гарантируется постинкрементом.