> 백엔드 개발 > C++ > Const 참조가 C에서 임시 수명을 연장하는 이유는 무엇입니까?

Const 참조가 C에서 임시 수명을 연장하는 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-03 05:06:02
원래의
1047명이 탐색했습니다.

Why Do Const References Extend the Lifetime of Temporaries in C  ?

Const 참조에 의한 Rvalue 수명 연장

C에서 const 참조는 불변의 별칭 역할을 할 뿐만 아니라 임시의 수명도 연장합니다. C 위원회가 이 동작을 구현하기로 결정한 이유는 무엇입니까?

이 기능에 대한 한 가지 근거는 클래스와 함수에서 구현 세부 정보를 숨기는 것입니다. 행 벡터나 열 벡터를 반환할 수 있는 행렬 클래스를 생각해 보세요. 성능을 최적화하기 위해 클래스는 행 주요 또는 열 주요 구성을 기반으로 내부 값에 대한 참조를 반환하도록 선택할 수 있습니다. 클라이언트가 반환 값을 const 참조로 수락하도록 요구함으로써 클래스는 참조와 값 사이를 원활하게 전환하여 구현 세부 사항으로부터 클라이언트를 보호할 수 있습니다.

역사적으로 rvalue 수명을 연장하려는 결정은 방법의 불일치를 해결하려는 욕구에서 비롯되었습니다. 참조는 1993년에 임시로 처리되었습니다. 당시에는 RVO(반환 값 최적화)가 존재하지 않았습니다. 참조에 대한 임시 바인딩을 금지하면 성능이 크게 저하될 수 있습니다. 따라서 위원회는 참조 사용 중 가용성을 보장하기 위해 임시 항목의 수명을 연장하면서 바인딩을 허용하는 솔루션을 선택했습니다.

이러한 근거는 1993년 C 표준 위원회에 제출된 제안 N0345.pdf에 문서화되어 있습니다. . rvalue의 수명을 연장함으로써 const 참조는 더 나은 추상화를 촉진하고, 코드 유연성을 유지하며, 함수에서 객체를 반환할 때 성능을 최적화합니다.

위 내용은 Const 참조가 C에서 임시 수명을 연장하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿