Зачем использовать универсальную ссылку для принятия результата функции, а не decltype(auto)?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Зачем использовать универсальную ссылку для принятия результата функции, а не decltype(auto)?

Сообщение Anonymous »

Код: Выделить всё

auto && result = foo();
по сравнению с

Код: Выделить всё

decltype(auto) result = foo();
единственное отличие состоит в том, что если возвращаемый тип foo не является ссылкой, тип первого является ссылкой rvalue, а тип последнего не является ссылкой.



объявить
вернуть int
вернуть int&
вернуть int&&

< /thead>


auto
int
int< /td>
int


auto&&
int&&
int&
int&&


decltype(auto)
int
int&
int&&




Подробнее здесь: https://stackoverflow.com/questions/784 ... cltypeauto
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»