Если вы читаете код типа
auto&& var = foo();
где foo - любая функция, перенастроенная по значению типа T
. Тогда var
является lvalue ссылки типа r на T
. Но что это означает для var
? Означает ли это, нам разрешено украсть ресурсы var
? Существуют ли разумные ситуации, когда вы должны использовать auto&&
, чтобы сообщить читателю вашего кода что-то вроде того, что вы делаете, когда возвращаете unique_ptr<>
, чтобы сообщить, что у вас есть эксклюзивное право собственности? А как насчет, например, T&&
, когда T
имеет тип класса?
Я просто хочу понять, если есть какие-либо другие варианты использования auto&&
, чем те, которые содержатся в шаблонах, как обсуждалось в примерах в этой статье Universal References Скоттом Мейерсом.