Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags more
Archives
Today
Total
관리 메뉴

난 정말 최고야 멋있어

move,forward 그리고 Rvalue Reference 본문

카테고리 없음

move,forward 그리고 Rvalue Reference

n00bh4cker 2020. 1. 16. 18:53
	int lvalue = 3;
	int& lref = lvalue;
	int&& rref = 2;	//rvalue
	int&& rref2 = lvalue + lvalue;	//xvalue
	int&& rref3 = std::move(lref);	//rvalue
	// int&& rref4 = lref;  lref 는 lvalue
	// int&& rref5 = rref;  rref 역시 rvalue

 

move : 불필요한 복사 연산을 하지 않기 위해 도입. 비용 절감은 덤! ( ex. 복사 후 원본 객체 삭제 )

forward : 템플릿 프로그래밍에서 value 타입에 따라 함수를 여러번 정의해야하는 불상사를 막기 위해 생김 

rvalue refernece : move와 forward로 부터 값을 받기 위해 생김 (xvalue 와 rvalue를 인자로 받을수 있다)

 

**Rvalue Reference는 단순히 형식일뿐.. Rvalue Reference 변수는 lvalue다

**move는 단순히 rvalue로 캐스팅하는 역할

**forward는 템플릿 인자T 에 따라서 캐스팅!

즉 lvalue가 들어왔다면 lvalue로 캐스팅, rvalue가 들어왔다면 rvalue로 캐스팅