2013-03-04 3 views
1

가끔 기능은 다음과 같이 선언을 참조하십시오C++ 더블 및 사용

void foo(vector<some type>&& inputs); 

& & 대신 &을 사용하는 주요 이유는 무엇입니까?

+4

아마도 가장 일반적인 두 가지 이유는 이동 의미와 완벽한 전달을 허용하는 것입니다. –

+0

@ 벤, 예, 실제로 복제물처럼 보입니다. 내 대답은 그 스레드의 대답보다 낫다고 생각해! – Dave

답변

3

이 값은 rvalue 참조라고하는 C++ 11의 새로운 기능입니다.

당신은 여기에 큰 소개 읽을 수 있습니다 : 기본적으로 http://thbecker.net/articles/rvalue_references/section_01.html

을, 그것이 문제없이 파괴 될 수있는 객체에 대한 참조가 될 것이라고, 및 복사 생성자와 같은 특정 작업을 최적화하는 데 사용됩니다 (다른 오브젝트를 삭제할 수있는 경우 스왑에 대해 변경할 수 있음).