"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 임시 개체에 대한 Const 참조를 바인딩하면 수명이 연장되는 이유는 무엇입니까?

임시 개체에 대한 Const 참조를 바인딩하면 수명이 연장되는 이유는 무엇입니까?

2024년 11월 17일에 게시됨
검색:603

Why Does Binding a Const Reference to a Temporary Object Extend Its Lifetime?

Const 참조를 임시 개체에 바인딩하면 임시 개체의 수명이 연장되는 이유는 무엇입니까?

C 프로그래밍 언어에서는 const 참조를 허용하여 임시 개체의 수명을 연장합니다. 이 동작은 코드 디자인의 성능과 유연성을 향상시킨다고 주장하는 등 많은 논쟁의 대상이 되었습니다.

이 언어 기능의 기원은 다음 문제에 대한 솔루션으로 제안된 1993년으로 거슬러 올라갑니다. 참조에 바인딩할 때 임시 처리에 일관성이 없습니다. 반환 값 최적화(RVO)가 없는 경우 참조에 대한 임시 바인딩을 금지하면 성능이 저하될 수 있습니다.

const 참조가 임시 수명을 연장하도록 허용함으로써 위원회는 이러한 불일치를 제거하는 것을 목표로 했습니다. , 잠재적인 성능 이점을 유지하면서. 이 디자인 선택을 통해 멤버 함수는 클라이언트 코드를 수정하지 않고도 값 반환이나 기존 내부 값에 대한 const 참조 사이를 원활하게 전환할 수 있습니다.

예를 들어 행 벡터나 열을 반환할 수 있는 행렬 클래스를 생각해 보세요. 벡터. 성능을 최적화하기 위해 구현의 내부 조직(행 주요 또는 열 주요 저장소)에 따라 하나 또는 다른 유형의 벡터가 참조로 반환될 수 있습니다. 이러한 유연성 덕분에 라이브러리 작성자는 나중에 클라이언트 코드에 영향을 주지 않고 구현을 수정할 수 있습니다. 그렇지 않으면 반환 값 유형을 명시적으로 처리해야 합니다.

결과적으로 위원회는 다음과 같은 경우 임시 수명을 연장하기로 결정했습니다. const 참조에 바인딩하면 두 가지 목적이 있습니다. 참조 바인딩 동작의 일관성을 보장하고 최적화되고 적응 가능한 코드 디자인을 구현할 수 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3