Right Value Reference 우측 값 참조
- 불필요한 메모리 복사를 방지하고 메모리를 이동시키는 방법
- 메모리의 할당, 복사, 해제 과정이 이루어지지 않아 성능향상
- move를 이해하기위해 필용한 개념인 것 같다.
좌측 값 (Lvalue) 와 우측 값 (Rvalue)
Lvalue = 7; 에서 좌측 값은 Lvalue이고 우측 값은 7 이다.
Lavlue2 = 31; 에서 좌측 값은 Lvalue2이고 우측 값은 31 이다.
Lvalue2 = Lvalue; 에서 Lvalue2는 좌측 값이다
Lvalue가 우측에 있기 때문에 우측 값이지 않을까? 라는 부분에서는
위의 식이 끝난 후에도 Lvalue의 값은 존재하므로 좌측 값이 된다.
우측 값과 좌측 값을 정확하게 구별하기 위해서는
식이 끝난 후에도 존재하면 좌측 값이고 존재하지않으면 우측 값이다 라고 알고 있으면 될 것같다.
좌측 값 참조
- & 을 사용하여 좌측 값을 참조한다
Lvalue의 경우 좌측 값이므로 LeftValue 가 &을 사용하여 좌측 값을 참조 하였다.
7의 경우 우측 값이므로 LeftValue2가 &을 사용하여 좌측 값 참조를 하지 못하였다.
우측 값 참조
- && 을 사용하여 우측 값을 참조한다.
31의 경우 우측 값이므로 RightValue 가 &&을 사용하여 우측 값을 참조 하였다.
Lvalue의 경우 좌측 값이므로 RightValue 가 &&을 사용하여 좌측 값을 참조 하지 못하였다.
'프로그래밍 공부 > modern C++' 카테고리의 다른 글
modern C++ Lambda (0) | 2022.02.25 |
---|---|
modern C++ 범위 기반 for문 (rage-based for statement) (0) | 2022.02.18 |
auto (0) | 2022.02.17 |
스마트 포인터 weak_ptr (0) | 2022.02.17 |
스마트 포인터 shared_ptr (0) | 2022.02.15 |