안녕하세요. 방수철입니다.
이번 글에서는 make_shared 에 대해서 설명드리겠습니다.
VS2010 C++에서는 다음과 같은 구문을 사용할 수 있게 되었습니다.
1 auto sp = make_shared<int>(1);
이전 버전들에서 위와 같은 기능을 하는 코드는 다음과 같습니다.
1 shared_ptr<int> sp(new int(1));
make_shared<T>를 사용하는 것이 여러 장점이 있습니다.
첫째, 편리함. 위의 예제에서 처럼 자료형의 이름을 한번이라도 덜 입력해도 됩니다.
두번째, 안정성. 포인터와 객체가 동시에 생성되기 때문에 익히 알려줘 왔던 shared_pointer의 unnamed leak를 방지할 수 있습니다.
마지막으로, 효율성. 이전 버전에서 처럼 shared_ptr을 선언하면 동적할당이 두 번 일어나게 되지만, make_shared<T>를 사용하게 되면 한 번만 일어나게 됩니다.
참고 :
http://msdn.microsoft.com/en-us/library/ee410595.aspx
'C++0x' 카테고리의 다른 글
[STL] 6. <algorithm>에 추가된 새로운 함수들 all_of, any_of, none_of (2/5) (2) | 2010.09.29 |
---|---|
[STL] 5. <algorithm>에 추가된 새로운 함수들 (1/5) (0) | 2010.08.31 |
[STL] 3. unique_ptr (2/2) (0) | 2010.08.04 |
[STL] 2. unique_ptr (1/2) (0) | 2010.07.27 |
[STL] 1. What's new in VC++ 2010? (0) | 2010.06.07 |