2011-07-01 2 views
5

C++ 03에서는 임시 수명을 참조 수명까지 연장하기 위해 const& 트릭 (또는 "가장 중요한 const")을 사용할 수 있습니다. 내 질문은 C++ 0x에서이 동작을 rvalue 참조로 확장 할 수 있습니까? 즉, auto&& x = someFunction();가장 중요한 const & rvalue refs

+0

왜 당신이 필요합니까? 'const auto &'는 똑같은 일을합니다. – RedX

+0

임시 파일을 수정할 수 있습니다. –

+1

실제로 그들이하는 일을 정확히 수행하는 이동 생성자를 살펴 본다면, 그들은 rvalue에 바인딩하고 그것을 수정합니다. – RedX

답변

4

[class.temporary]에 따르면, 컴파일하면 yes가되므로 임시 수명이 연장됩니다.

+1

rvalue 참조에 대한 명시적인 언급은 없지만 "참조"라는 용어에 내포되어 있다고 가정합니다. 그래도 나를 불안하게 만든다. –

+2

§8.3.2/2를 참조하십시오. &를 사용하여 선언 된 참조 유형은 왼쪽 값 참조라고하며, &&를 사용하여 이라고 선언 된 참조 유형은 r 값 참조라고합니다. (...) 명시 적으로 명시된 경우 을 제외하고는 의미 상 동일하며 일반적으로 참조라고합니다. – Vitus

0

그것은 완벽하게 VC10 SP1에서 컴파일 :

int && Get() 
{ 
    return 10; 
} 

const auto&& y=Get(); 
관련 문제