이번에 새로 툴을 만들면서 smart pointer 종류 중 std 로 들어 있는 shared_ptr 을 써보게 됐는데,
전에 쓰던 intrusive_ptr 과는 다르게 안되는게 몇 개 있네...

1. 객체 할당

shared_ptr<class> a = new class; // 이거 안됨
shared_ptr<class> a(new class); // 이런 식으로 써야함


2. NULL 로 초기화

shared_ptr<class> a = NULL; // 이것도 안됨
shared_ptr<class> a; // 할당안된 상태가 NULL 임


3. NULL 값 비교

shared_ptr<class> a;

if (a == NULL) { ... } // 이거 안됨
if (!a) { ... } // 이런 식으로 비교 해야함 


그래도 new - delete 귀찮음에서 벗어나게 해주는 smart pointer 좋음 :)

참고 : 
네이버 블로그 "boost::shared_ptr" http://blog.naver.com/sleepy1027/150090639490
MSDN shared_ptr http://msdn.microsoft.com/en-us/library/vstudio/bb982026.aspx
boost::shared_ptr http://www.boost.org/doc/libs/1_54_0/libs/smart_ptr/shared_ptr.htm
728x90

+ Recent posts