Постоянная ссылка для пересылки и постоянная ссылка для ссылок для пересылки

В чем разница между const auto&& и const auto& в отношении ссылок на пересылку? Чем они отличаются по креплению?


person nowi    schedule 07.04.2020    source источник
comment
Технически правильной терминологией для универсальной ссылки является ссылка на пересылку, см. этот вопрос.   -  person walnut    schedule 07.04.2020


Ответы (1)


В чем разница между const auto&& и const auto& в отношении универсальных ссылок?

Их разница в том, что const auto&& — это ссылка rvalue на const, а const auto& — ссылка lvalue на const. Их объединяет то, что ни один из них не является ссылкой для пересылки. Только auto&& является ссылкой для пересылки (или T&&, где выводится T).

const auto&& не привязывается к lvalue, в отличие от const auto& и T&&.

person eerorika    schedule 07.04.2020
comment
Есть ли какое-то преимущество у const auto & перед auto &&? - person nowi; 07.04.2020
comment
@nowi По сути, тот факт, что это не ссылка для пересылки, является преимуществом, когда вы не хотите иметь ссылку для пересылки. Проверьте здесь для получения списка случаи, когда стандарт использует const &&. Это довольно неясно. - person eerorika; 07.04.2020
comment
Интересное замечание о const &&, я этого не знал, и это очень полезно, я могу использовать это сам. Но я полагаю, что спрашивал о const auto & в своем комментарии и auto &&, а не const auto && - person nowi; 07.04.2020
comment
@nowi О, я не заметил :) Преимущество auto &&, конечно, в том, что вы можете использовать его для идеальной переадресации. - person eerorika; 07.04.2020
comment
так что тогда у const auto & нет преимущества? - person nowi; 08.04.2020
comment
@nowi О, я все еще неправильно понял / неправильно прочитал исходный комментарий: D const auto & выгодно, когда вы хотите быть уверены, что вы не в конечном итоге случайно измените упомянутый объект. - person eerorika; 08.04.2020
comment
Я понимаю. Под капотом такая же функция? - person nowi; 08.04.2020
comment
@nowi Ссылка - это просто косвенное указание. Они все одинаковые под капотом. - person eerorika; 08.04.2020