C++ 03에서는 임시 수명을 참조 수명까지 연장하기 위해 const&
트릭 (또는 "가장 중요한 const")을 사용할 수 있습니다. 내 질문은 C++ 0x에서이 동작을 rvalue 참조로 확장 할 수 있습니까? 즉, auto&& x = someFunction();
가장 중요한 const & rvalue refs
5
A
답변
4
[class.temporary]
에 따르면, 컴파일하면 yes가되므로 임시 수명이 연장됩니다.
+1
rvalue 참조에 대한 명시적인 언급은 없지만 "참조"라는 용어에 내포되어 있다고 가정합니다. 그래도 나를 불안하게 만든다. –
+2
§8.3.2/2를 참조하십시오. &를 사용하여 선언 된 참조 유형은 왼쪽 값 참조라고하며, &&를 사용하여 이라고 선언 된 참조 유형은 r 값 참조라고합니다. (...) 명시 적으로 명시된 경우 을 제외하고는 의미 상 동일하며 일반적으로 참조라고합니다. – Vitus
0
그것은 완벽하게 VC10 SP1에서 컴파일 :
int && Get()
{
return 10;
}
const auto&& y=Get();
관련 문제
- 1. Rvalue refs concurrency
- 2. 가장 중요한 속도 문제
- 3. 가장 중요한 알고리즘은 무엇입니까?
- 4. 를 rvalue, 템플릿 해상도와
- 5. rvalue 참조로보다 효율적으로 반환됩니까? 예를 들어
- 6. DWORD 배열에서 가장 중요한 DWORD 찾기
- 7. 가장 가까운 이웃을 해결하기위한 성능에 중요한 알고리즘
- 8. 현재 가장 중요한 AI 개발은 무엇입니까?
- 9. 프로그래밍에 사용할 수있는 가장 중요한 인증은 무엇입니까?
- 10. 오늘 VoIP 허니팟의 가장 중요한 특징
- 11. HTML - 가장 중요한 접근성 기능은 무엇입니까?
- 12. SIFT/SURF에서 얻은 가장 중요한 피쳐 검색
- 13. Visual Studio 2010의 가장 중요한 기능
- 14. RSS/Atom 피드의 가장 중요한 요소
- 15. 를 rvalue 참조, 포인터, 복사 생성자
- 16. const vs new const
- 17. C++ 0x : 암시적인 const char * 생성자가있는 클래스의 경우 Rvalue 참조 매개 변수가 일치합니다.
- 18. rvalue 참조에 대해 const lvalue reference를 명시 적으로 허용하는 메서드를 명시 적으로 오버로드해야합니까?
- 19. Visual Studio 2010에서 rvalue 참조
- 20. 전용 멤버 : 정적 const 대 단지 const
- 21. 치명적인 : refspec의 원격 부분이 .git/refs/heads/master의 유효한 이름이 아닙니다. .git/refs/remotes/origin/master
- 22. const 문자열에 const 포인터 정의
- 23. 올바르게 .git/refs/changes/*를 삭제하는 방법
- 24. Git에서 "refs/bisect/bad"브랜치를 없애는 법
- 25. EF4의 중요한 데이터
- 26. 중요한 문제
- 27. STL에서 여분의 할당과 마 법적 공간 축소 - rvalue 참조 사용
- 28. 중요한 위치 변경 작업은?
- 29. 비 const 버전이 아닌 const 함수 호출하기
- 30. const (T const *)에 대한 포인터 삭제
왜 당신이 필요합니까? 'const auto &'는 똑같은 일을합니다. – RedX
임시 파일을 수정할 수 있습니다. –
실제로 그들이하는 일을 정확히 수행하는 이동 생성자를 살펴 본다면, 그들은 rvalue에 바인딩하고 그것을 수정합니다. – RedX