※ std::shared_ptr 요약
C++11에 새로 추가된 스마트 포인터인 shared_ptr에 대한 내용이다.
스마트 포인터란, 사용하지 않는 메모리나 사용이 끝난 메모리를 자동으로 해제/관리 해주는 것을 의미하는 것으로써 Java나 C#의 가비지 컬렉터와 비교 했을때 성능의 손해는 거의 없으면서 메모리 관리의 이점을 얻을 수 있으므로 편하고도 안전하다.
스마트 포인터는 메모리 누수 관리에 자신이 없는 초보자들이나 복잡하고 거대한 프로젝트를 진행할때 사용하면 적당할 거 같다.
그렇지만 필자는 스마트 포인터를 거의 사용하지 않는다. 아직은 직접 할당, 해제를 해줘야 안심?이 되기 때문이다.
※ std::shared_ptr 특징
- 레퍼런스(참조) 카운팅을 지원한다.
- 명시적인 delete를 해주지 않아도 마지막에 참조하는 곳에서 스코프를 벋어날때 자동으로 해제된다.
- 특별히 어려운 문법을 배우지 않고도 메모리 관리에 큰 편의를 제공받는다.
※ std::shared_ptr을 사용해야 하는 경우
- 메모리 관리에 자신없는 분들이 메모리를 관리해야 할 때
- 거대하고 복잡한 프로젝트를 진행 할 때
- C++11이나 그 이상을 지원하는 컴파일러를 사용 할 때