raw resource 확인
new/delete, malloc/free, FILE*, socket fd처럼 수명 종료 함수가 따로 있는 멤버가 있는지 찾습니다.
클래스가 raw resource를 직접 소유하는지부터 보면 소멸자, 복사 생성자, 복사 대입, 이동 생성자, 이동 대입을 직접 선언할지 결정할 수 있습니다.
new/delete, malloc/free, FILE*, socket fd처럼 수명 종료 함수가 따로 있는 멤버가 있는지 찾습니다.
std::string, std::vector, std::unique_ptr가 소유권을 감싸면 소멸자와 대입 연산자를 직접 만들지 않습니다.
소멸자를 직접 썼다면 복사 생성자와 복사 대입을 검토하고, 이동을 허용하면 이동 생성자와 이동 대입까지 맞춥니다.
unique owner는 copy를 =delete로 막고, 컨테이너 이동 최적화를 원하면 move 생성자에 noexcept를 검토합니다.