Зачем использовать универсальную ссылку для принятия результата функции, а не 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

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