[effective STL] 항목 08 : auto_ptr의 컨테이너는 절대 말들지 말기

2015. 9. 6. 19:19프로그래밍/Effective STL

728x90
728x90

문제점

auto_ptr의 특징상 소유권이 이전 되면 이전의 포인터가 NULL이 된다.

정렬이나 기타 알고리즘을 사용할 때 특히 치명적이다.

지역 내에 있던 포인터가 있다면 그 포인터는 지역이 끝날 때 해제가 된다.

그러므로 컨테이너의 포인터가 하나 이상의 데이터가 NULL이 된다.


예시

sort 함수. 변형된 퀵소트 알고리즘을 사용하고 있다.

컨테이너 내의 특정 요소를 '피벗'으로 잡고 선택한 후에 분할정복.

피벗은 지역에서 자동 해제된다.(가리키고 있는 원본도)


해결

사용하지 말자.

728x90
반응형