C 표준 라이브러리의 자체 이동 할당
C 표준 라이브러리는 표준에 정의된 대로 자체 이동 할당에 대한 특정 동작을 보장합니다.
구체적으로 표준에서는 T&& 유형의 인수가 있는 표준 라이브러리의 함수에 대해 다음과 같이 명시합니다. 구현에서는 매개변수가 인수에 대한 고유한 참조라고 가정할 수 있습니다. 이는 표준 라이브러리가 매개변수가 임시 rvalue라는 가정을 기반으로 동작을 최적화할 수 있음을 의미합니다.
자체 이동 할당의 경우 구현에서는 인수 벡터가 prvalue라고 가정할 수 있습니다. 이는 인수가 lvalue인 경우에는 불가능했던 최적화를 표준 라이브러리가 수행할 수 있음을 의미합니다.
따라서 표준 라이브러리에서 자체 이동 할당으로 인해 벡터가 리소스에 남게 될 가능성이 높습니다. -용량이 0인 상태가 없습니다. 벡터의 용량이 이미 0인 경우 자체 이동 할당은 no-op.
업데이트
C 표준의 최신 초안에는 MoveAssignable 요구 사항에서 표현식 t = rv(여기서 rv는 rvalue임)가 명시적으로 명시되어 있습니다. t와 rv가 동일한 객체를 참조하지 않는 경우에만 할당 전에 t가 rv와 동일해야 합니다. 또한 할당 후에는 rv의 상태가 지정되지 않습니다.
위 내용은 C 표준 라이브러리의 벡터에 대한 자체 이동 할당의 의미는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!