-1
E && e0 = E() ;
E e1 ;
Y a-t-il des différences entre ces deux cas de déclaration d'objet? ;rvalue référence à la déclaration temporaire
E && e0 = E() ;
E e1 ;
Y a-t-il des différences entre ces deux cas de déclaration d'objet? ;rvalue référence à la déclaration temporaire
Dans votre exemple:
E()
est une rvalue (un prvalue pour être exact);e0
est une lvalue, de type E&&
(référence rvalue à E
); Est également une lvalue, de type E
;e0
, en se liant au résultat de E()
, étend sa durée de vie de temporaire à automatique.Ainsi, si le code suivant ne fait pas la différence entre E
et E&&
(par exemple, decltype
serait, mais auto
ne serait pas), ils se comporteront les mêmes.