이동된 개체에 허용되는 작업
C 표준은 이동된 개체에 허용되는 작업을 정의합니다. 이러한 객체는 지정되지 않은 상태로 간주되어 제한된 범위의 작업이 허용됩니다.
표준 참조
섹션 17.6.5.15 [lib.types.movedfrom] 이동된 객체는 "유효하지만 지정되지 않은 위치에 배치되어야 한다"는 표준 상태 state."
비제한적 작업
지정되지 않은 상태의 개체는 전제 조건이 없는 작업을 수행할 수 있습니다. 일반적인 예는 다음과 같습니다.
제한적 작업
역참조 또는 pop_back과 같은 전제 조건이 있는 작업은 개체의 지정되지 않은 상태가 필요한 요구 사항을 충족하지 않을 수 있으므로 이동된 개체에 대해 직접 수행할 수 없습니다.
예: std::swap
예제 스왑 함수 템플릿은 다음에 의존합니다. 이동된 개체에 대한 할당(라인 2 및 3). 이는 할당이 비제한적 작업이기 때문에 유효합니다.
대체 생성자 구문
라인 1과 관련하여 T c = std::move(a) 사용 ; T c(std::move(a)) 대신; 효율성상의 이유입니다. 직접 초기화에는 복사 생성자 호출이 필요하지만 할당에는 그렇지 않습니다.
위 내용은 C에서 이동한 객체에는 어떤 작업이 허용됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!