C에서는 const 객체에 대한 rvalue 참조의 유용성에 의문이 생길 수 있습니다. 이 주제를 더 깊이 탐구하기 위해 다음 질문을 분석해 보겠습니다. "Foo가 클래스 유형이라고 가정할 때 const Foo& &가 유리할 수 있는 시나리오가 있습니까?"
놀랍게도 const rvalue 참조는 뚜렷한 이점을 제공합니다. C 0x 초안 자체는 다음 코드 내에서의 사용법을 예시합니다.
template <class T> void ref(const T& &) = delete; template <class T> void cref(const T& &) = delete;
이러한 오버로드는 ref(T&) 또는 cref(const T&)와 같은 다른 함수가 rvalue 개체에 바인딩되는 것을 효과적으로 방지합니다. 이는 이러한 기능의 의도된 동작을 보장합니다.
공개적으로 사용할 수 없는 공식 표준 문서 N3290의 섹션 20.8에는 동일한 코드가 있습니다.
template <class T> void ref(const T& &) = delete; template <class T> void cref(const T& &) = delete;
또한 최신 초안인 N3485에서는 이러한 const rvalue 참조 오버로드가 여전히 섹션 20.8에 존재하며 계속되는 내용을 강조합니다. 관련성.
따라서 처음에는 const rvalue 참조가 유용성이 부족하다고 가정할 수도 있지만 C 표준 및 기타 컨텍스트 내에서의 실제 적용은 그 중요성을 강조합니다.
위 내용은 C에서 `const Foo&&` Rvalue 참조는 언제 유용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!