이동된 벡터는 비어 있는 것이 보장됩니까?
일반적으로 C 표준은 이후 개체 상태에 대한 최소한의 지침만 제공합니다. 그들은 옮겨졌습니다. N3485 17.6.5.15 [lib.types.movedfrom]/1:
에 명시된 대로 C 표준 라이브러리에 정의된 유형의 개체는 (12.8)에서 이동할 수 있습니다. 이동 작업은 명시적으로 지정되거나 암시적으로 생성될 수 있습니다. 달리 명시하지 않는 한, 이러한 이동 개체는 유효하지만 지정되지 않은 상태로 배치되어야 합니다.
이 조항은 벡터가 이러한 동작의 대상이 되는 것을 제외하지는 않지만 해석의 여지를 남겨둡니다.
벡터의 특정 동작
벡터가 일반 규칙의 영향을 받지 않도록 제외하는 명시적인 표준 요구 사항은 없습니다. 개체에서 옮겨졌습니다. 그러나 벡터 구현 요구 사항에 따라 옵션이 제한됩니다.
이동 생성자:
이동 할당 연산자:
대소문자 하나:
사례 두 번째:
사례 세 가지:
결론:
벡터의 이동 생성자의 경우 이동된 벡터는 항상 비어 있습니다. 이동 할당 연산자의 경우 이동 원본 벡터는 일반적으로 비어 있지만 할당자가 호환되지 않고 T가 MoveAssignable 또는 MoveInsertable인 특정 특정 시나리오에서는 비어 있지 않을 수 있습니다.
위 내용은 이동된 `std::벡터`는 비어 있는 것이 보장됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!