Rvalue ссылка на временную декларацию

E && e0 = E () ; 
E e1 ;

есть ли различия между этими двумя случаями объявления объекта?;

1 ответ

Решение

В вашем примере:

  • Результат E() является значением (если быть точным);
  • e0 является lvalue, типа E&& (Rvalue ссылка на E);
  • e1 также lvalue, типа E;
  • e0, привязав к результату E(), продлевает срок службы от временного до автоматического.

Таким образом, если следующий код не делает разницы между E а также E&& (например, decltype но auto не будет), они будут вести себя так же.

Другие вопросы по тегам