Обновление вопрос Why this two rvalue references examples have different behavior?:Могу ли я использовать ссылку rvalue для временного? Это неопределенное поведение или нет?
Исходный код:
int a = 0;
auto && b = a++;
++a;
cout << a << b << endl;
печатает 20
Это неопределенное поведение (UB), чтобы использовать b
после a++
вызова? Может быть, мы не можем использовать b
, потому что это относится к временному?
Этот документ может быть полезным вы: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/1993/N0345.pdf – dkg
Хм, из моего понимания это не так, как значение временного из 'a ++' «перемещено» "на' b'. Но я думаю, что это может быть UB, если вы будете использовать 'auto && b = ++ a;', как в вашем примере в другом вопросе. Но я могу быть совершенно неправым, поскольку я не очень хорошо знаком с семантикой перемещения. –
@dkg Является ли он актуальным для ссылок на значения r, введенные в C++ 11 ('&&')? – vladon