auto&& - nie rozumiem co to znaczy r-wartość i l-wartość

0

Cześć,

mam problem ze zrozumieniem wyrażenia w forze

for(auto&& i: container)

Do tej pory używałem

for(const auto& i: container)

żeby mieć stałą wartość przez referencję.
albo po prostu kopiowałem do i jak to był zwykła liczba a nie duży obiekt

for(auto i: container)

ale dwóch operatorów && nie rozumiem.
Coś poczytałem w necie i było napisane o r/l-values i nie po co takie coś.

1

auto&& (i ogółem dedukcja typu w powiązaniu z &&) bywa nazywana uniwersalną referencją i pozwala na przypisanie do niej właściwie wszystkiego. Tutaj pozwala to na użycie kontenera zwracającego rvalue i robienie na nich dalszych operacji przenoszenia.

Ciut więcej napisałem kiedyś na stacku: https://stackoverflow.com/a/40121791/2456565

Tutaj ogólny opis tego (tak, jest o tym 2-godzinna prelekcja na cppconie, więc nie martw się, że nie ogarniasz na 1 rzut oka)

https://isocpp.org/blog/2012/11/universal-references-in-c11-scott-meyers

1 użytkowników online, w tym zalogowanych: 0, gości: 1