#1. 개념
1. 우측 값
int a;
a = 5; // a는 좌항, 5는 우항
좌항 혹은 좌측 값은 그 주소를 얻을 수 있는 이름을 가진 대상을 말합니다. 반대로, 우항 혹은 우측 값은 상수 값 혹은 임시 객체를 의미합니다.
#2. 코드
// 1. 좌측값 참조형 파라미터
void incr (int& val) { ++val; }
int a = 10, b = 11;
incr(a);
incr(b);
// 2. 우측값 참조형 파라미터
void incr (int&& val) { ++val; }
incr(5); // 상수값
incr(a+b); // 임시 변수
incr(std::Move(a)); // std::Move() : 좌항 변수 -> 우측값 참조로 변환
C++에서 &&를 활용해 우측 값 참조가 가능합니다. 특히, move() 함수를 통해 좌항 변수를 우측 값 참조로 변환하는 것 또한 가능합니다. 이때, move() 함수를 활용할 경우 원본의 메모리 영역에 대한 소유권이 이전됩니다. 그리고, 원본 변수는 여전히 유효하지만 불특정 상태가 됩니다.
'언어 > Basic C++' 카테고리의 다른 글
[Basic C++] #26_const 포인터, const 참조 (0) | 2022.05.15 |
---|---|
[Basic C++] #25_우측 값 참조, 이동 시맨틱 (0) | 2022.05.14 |
[Basic C++] #23_참조형 파라미터, 참조에의한 전달 (0) | 2022.05.08 |
[Basic C++] #21_가상 상속 (0) | 2022.05.01 |
[Basic C++] #20_virtual 키워드, vtable 오버헤드 (0) | 2022.05.01 |