rvalue로 바꾼다는 것은 임시 객체로 만든다는 것이다
rvalue는 그 객체의 포인터를 가로채도 문제가 없다
함수인자가 rvalue로 들어와도 내부에선 lvalue취급을 한다(변수로 받았으니까)
Reference Collapsing Rule
int& & : int&
int& && : int&
int&& && : int&&
int&& & : int&
template<typename T>
void deduce(T&& t);
일 때, T가 int형 lvalue or rvalue일 때 다음 규칙이 적용된다
int& && : int&
int&& && : int&&
std::forward()는 템플리트 함수의 인수를 다른 함수의 인수에 그대로 전달하기 위한 것이다. 이것을 perfect forwarding이라고 한다.
반응형
'C, C++' 카테고리의 다른 글
[C++] Lamda를 이용해 priority_queue를 간단하게 사용해 보자 (0) | 2016.12.14 |
---|---|
[C++] 템플릿 Typename은, 쓸 변수를 미리 정의해 두는 것이다. (0) | 2016.11.07 |
[스크랩][C, C++] C++의 람다 식 (0) | 2016.01.30 |
[C, C++] More Effective C++ Item28 : Smart Pointer (0) | 2014.03.30 |
[C++][추후 추가해야 함] More Effective C++ Item 26 : 클래스 인스턴스의 개수를 의도대로 제한하는 방법 (0) | 2014.03.16 |
[C++] More Effective C++ Item 25 : 생성자 함수와 비 멤버 함수를 가상 함수처럼 만드는 방법 (0) | 2014.03.16 |
[C, C++] Formatting std::string (0) | 2014.03.03 |
How to output long long or int64? (2) | 2014.03.03 |
[C++][STL] string documentation. (0) | 2014.01.15 |
[Windows32 API] Dialog 박스와 CreateWindow 같이 쓸 때 (0) | 2013.05.13 |