> 백엔드 개발 > C++ > C 표준 라이브러리의 벡터에 대한 자체 이동 할당의 의미는 무엇입니까?

C 표준 라이브러리의 벡터에 대한 자체 이동 할당의 의미는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-20 12:55:09
원래의
394명이 탐색했습니다.

What are the implications of self move assignment for vectors in the C   Standard Library?

C 표준 라이브러리의 자체 이동 할당

C 표준 라이브러리는 표준에 정의된 대로 자체 이동 할당에 대한 특정 동작을 보장합니다.

구체적으로 표준에서는 T&& 유형의 인수가 있는 표준 라이브러리의 함수에 대해 다음과 같이 명시합니다. 구현에서는 매개변수가 인수에 대한 고유한 참조라고 가정할 수 있습니다. 이는 표준 라이브러리가 매개변수가 임시 rvalue라는 가정을 기반으로 동작을 최적화할 수 있음을 의미합니다.

자체 이동 할당의 경우 구현에서는 인수 벡터가 prvalue라고 가정할 수 있습니다. 이는 인수가 lvalue인 경우에는 불가능했던 최적화를 표준 라이브러리가 수행할 수 있음을 의미합니다.

따라서 표준 라이브러리에서 자체 이동 할당으로 인해 벡터가 리소스에 남게 될 가능성이 높습니다. -용량이 0인 상태가 없습니다. 벡터의 용량이 이미 0인 경우 자체 이동 할당은 no-op.

업데이트

C 표준의 최신 초안에는 MoveAssignable 요구 사항에서 표현식 t = rv(여기서 rv는 rvalue임)가 명시적으로 명시되어 있습니다. t와 rv가 동일한 객체를 참조하지 않는 경우에만 할당 전에 t가 rv와 동일해야 합니다. 또한 할당 후에는 rv의 상태가 지정되지 않습니다.

위 내용은 C 표준 라이브러리의 벡터에 대한 자체 이동 할당의 의미는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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