C 표준에서는...
LValue : 대입 연산자를 기준으로 왼쪽과 오른쪽 모두에 사용될 수 있는 값
RValue : 오른쪽에만 사용될 수 있는 값
C++ 에서는...
LValue : 단일 표현식 이후에도 없어지지 않고 지속되는 객체
RValue : 표현식이 종료된 이후에는 더이상 존재하지 않는 임시적인 값, (... 상수 또는 임시객체)
LValue
++x : 증가된 x 자신을 리턴하기에 LValue
RValue
x++ : 증가된 복사본을 리턴하기에 RValue
구분 방법
& 를 붙여본다. &연산자는 LValue를 요구하여 RValue면 컴파일 오류 발생.
LValue 참조자는 LValue만 참조할 수 있고 RValue 참조자는 RValue만 참조할 수 있다.
References
https://effort4137.tistory.com/entry/Lvalue-Rvalue
Lvalue Rvalue
C++ Lvalue와 Rvalue에 대한 오해 Lvalue와 Rvalue는 보통 Left-value(왼쪽값)과 Right-value(오른쪽값)로 풀어서 씁니다. 이 때문에 대입 연산자(=)를 기준으로 왼쪽에 위치하는 값이 Lvalue이고 오른쪽에 위치하.
effort4137.tistory.com
https://effort4137.tistory.com/entry/C11-Rvalue-Reference-2-Move-Semantics
[C++11] Rvalue Reference #2 - Move Semantics
Move Semantics Move Semantics란 객체의 리소스(동적으로 할당 된 메모리와 같은)를 또 다른 객체로 전송(이동)하는 것을 의미합니다. 앞에서 살펴보았던 Rvalue 참조자는 Move Semantics의 구현을 가능하게
effort4137.tistory.com
'공부 > 복기' 카테고리의 다른 글
Vector (0) | 2022.02.22 |
---|---|
평균값과 중앙값 (0) | 2022.02.22 |
Activation function 비교 (0) | 2022.02.22 |
map vs unordered_map (0) | 2022.02.22 |