То, что я думаю о чем-то вроде X&& x = static_cast<X&&>(obj_x);
, заключается в том, что, несмотря на появление, x
заканчивается тем, что является обычной ссылкой на значение lvalue. Недавно я столкнулся с this article, где Скотт Мейерс настаивает на том, что x
будет lvalue ссылки типа rvalue. Разве это действительно значимо, или это различие без разницы? В частности, учитывая либоВ C++, имеет смысл сказать, что переменная имеет тип rvalue reference?
X&& x = static_cast<X&&>(obj_x)
или
X& x = obj_x;
есть любой последующий код, который будет вести себя по-разному для этих двух определений x
?
'decltype (x)'. Если 'x' - нестатический член данных, это также влияет на генерацию конструктора копирования. – cpplearner
Почему бы не включить этот комментарий в ответ? – Ari