La façon dont je pense à quelque chose comme X&& x = static_cast<X&&>(obj_x);
est que, malgré les apparences, x
finit par être une référence lvalue ordinaire. J'ai récemment rencontré this article où Scott Meyers insiste sur le fait que x
serait une lvalue de référence de type rvalue. Est-ce vraiment significatif ou est-ce une distinction sans différence? Plus précisément, étant donné soitEn C++, est-il significatif de dire qu'une variable a une référence de type rvalue?
X&& x = static_cast<X&&>(obj_x)
ou
X& x = obj_x;
est-il un code suivant qui se comportera différemment pour ces deux définitions de x
?
'decltype (x)'. Si 'x' est un membre de données non statique, cela affecte également la génération du constructeur de copie. – cpplearner
Pourquoi ne pas transformer ce commentaire en une réponse? – Ari