weak_ptr
은 shared_ptr
의 문제점을 해결하기 위해 참조 횟수에 영향을 받지 않는 스마트 포인터이다.
weak_ptr
은 shared_ptr
로 연결된 자료구조의 포인터 참조 고리를 끊기 위한 것으로 일반 포인터와 shared_ptr
사이에
위치한 스마토 포인터로 스마트 포인터처럼 객체를 안전하게 참조할 수 있도록 하나 shared_ptr
과는 다르게 참조 개수를 늘리지 않는다.
weak_ptr
자체로는 원래 객체를 참조할 수 없고 반드시 shared_ptr
로 변환해서 사용하여야 한다. 이 때 가리키고 있는 객체가
이미 소멸되었다면 빈 shared_ptr
로 변환되고 소멸도지 않았다면 해당 객체를 가리키는 shared_ptr
로 변환된다.