• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

r-value i l-value c++

Fiszki IT
Fiszki IT
0 głosów
62 wizyt
pytanie zadane 3 dni temu w C i C++ przez Eriss69 Gaduła (4,020 p.)
Potrzebuje solidnego wyjasnienia  : r-value i l-value

z gory dziekuje za odp
komentarz 3 dni temu przez tkz Nałogowiec (39,540 p.)
W jakimś konkretnym kontekście? Dokumentacja to niejako tłumaczy.
komentarz 3 dni temu przez TOM_CPP Pasjonat (17,820 p.)

To musisz także poznać xvalue, glvalue i prvalue.

A najprościej tłumaczy to poniższy rysunek:

t

value categories in c++

komentarz 3 dni temu przez Eriss69 Gaduła (4,020 p.)
w takim ze trafi to do mnie xd
1
komentarz 2 dni temu przez tkz Nałogowiec (39,540 p.)
https://cpp-polska.pl/post/podzial-wyrazen-ze-wzgledu-na-kategorie-wartosci-w-c

Imo sam obrazek niczego nie tłumaczy jak nie znasz kontekstu.

1 odpowiedź

+2 głosów
odpowiedź 2 dni temu przez xXx_AJB_xXx Nowicjusz (210 p.)

Nazwy l-wartość i r-wartość są dość nieszczęśliwe (nie są wartościami jak sugeruje nazwa, a wyrażeniami). Nazywa się je tak ze względów historycznych. L-wartości pojawiały się bowiem po lewej stronie operatora przypisania, a r-wartości po prawej (por. left- i right-hand side odpowiednio). Nie wchodząc w meandry taksonomii kategorii wyrażeń, l-wartość odpowiadają obiektom, do których można odwołać się przez nazwę, wskaźnik lub odwołanie do l-wartości. Dodatkowo, l-wartość bez cechy const może zostać użyta jako lewy operand operatora przypisania. Przydatna heurystyka: jeśli można wziąść adres wyrażenia, jest (zazwyczaj) l-wartością; jeśli nie jest to najprawdopodobniej r-wartość. Przykład: 

int foo(int&& x) {
return 2 * x; // 2 to r-wartość, x to l-wartość (decltype(x) to int&&), 
// wyrażenie 2 * x to r-wartość
}

int main() {
std::cout << foo(3); // std::cout to l-wartość, foo(3) to r-wartość, 
// std::cout << foo(3) to l-wartość (bo typem zwracanym przez 
// przeciążony operator<< jest referencja do l-wartości)
}

 

Podobne pytania

0 głosów
1 odpowiedź 1,281 wizyt
pytanie zadane 19 października 2017 w C i C++ przez Lebowski Początkujący (330 p.)
0 głosów
2 odpowiedzi 90 wizyt
pytanie zadane 17 października 2015 w C i C++ przez Newtonik Gaduła (3,640 p.)
0 głosów
3 odpowiedzi 206 wizyt
pytanie zadane 22 października 2019 w PHP przez Artek Stary wyjadacz (11,580 p.)
Porady nie od parady
Publikując kody źródłowe korzystaj ze specjalnego bloczku koloryzującego składnię (przycisk z napisem code w edytorze). Nie zapomnij o ustawieniu odpowiedniego języka z rozwijanego menu oraz czytelnym formatowaniu kodu.Przycisk code

84,706 zapytań

133,512 odpowiedzi

295,904 komentarzy

55,988 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...