2016-01-30 2 views

Répondre

2

Dans votre exemple:

  • Le résultat de 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.