이동 후 원본은 “유효하지만 내용은 미정”

std::move(vec1) 이후 중요한 것은 새 객체가 자원을 갖고, 원본은 안전하게 소멸 가능한 상태로 남는다는 점입니다.

이동 전

MyVector vec1(10)
  • vec1이 힙 버퍼를 소유합니다.
  • 크기와 포인터 값을 신뢰할 수 있습니다.

캐스팅

std::move(vec1)

vec1을 rvalue 참조 오버로드 후보로 보이게 만듭니다.

이동 후

MyVector vec3 = ...
  • vec3이 기존 버퍼를 소유합니다.
  • vec1은 소멸/재대입 가능한 상태로 둡니다.

주의: 이동된 원본을 “비어 있다”고 단정하지 말고, 필요하면 새 값을 대입하거나 다시 초기화한 뒤 사용합니다.