본문 바로가기

VS2010

[VS2010 기술] unique_ptr 은? ( 02/02 ) 이글은 MS VS2010 공식 팀 블로그에서 발췌한 내용입니다 auto_ptr의 완벽한 대체자 혹은 그 이상 앞선 글에서 설명드렸듯이 unique_ptr은 auto_ptr이 deprecation으로 결정되면서 그 대체자 로서 제안되게 되었습니다. 필연적으로 auto_ptr의 모든 기능을 포함하고 있으며, 문법 또한 같습니다. 단, auto_ptr이 deprecation으로 결정되게 된 원인이었던 복사 문법을 제외됩니다. 아래 예제 코드는 auto_ptr의 기본적인 동작이 unique_ptr에서도 구현되어 있음을 보여줍니다. 1 // 기본 생성자 2 auto_ptr ap; 3 unique_ptr up; 4 // 포인터 생성자 5 auto_ptr autoPtr(new int); 6 unique_ptr uni.. 더보기
[VS2010 기술] unique_ptr 은? ( 01/02 ) 이글은 MS VS2010 공식 팀 블로그에서 발췌한 내용입니다 Remind 주요 변경 사항으로 소개되 내용에서, unique_ptr에 대해서 다음과 같이 설명하고 있습니다. "auto_ptr 클래스보다 더 안전한 스마트 포인터형인 unique_ptr 클래스의 구현에도 Rvalue reference가 사용되었습니다. unique_ptr 클래스는 move는 할 수 있지만 copy는 불가능하며, safety에 영향을 미치지 않으면서 강한 소유 의미(strict ownership semantics)를 구현했습니다. 또한, unique_ptr 클래스는 rvalue references가 구현된 container들과 잘 동작합니다." unique_ptr in MSDN Library MSDN Library에 소개된 u.. 더보기
[VS2010기술] make_shared 이번 글에서는 make_shared 에 대해서 설명드리겠습니다. VS2010 C++에서는 다음과 같은 구문을 사용할 수 있게 되었습니다. 1 auto sp = make_shared(1); 이전 버전들에서 위와 같은 기능을 하는 코드는 다음과 같습니다. 1 shared_ptr sp(new int(1)); make_shared를 사용하는 것이 여러 장점이 있습니다. 첫째, 편리함. 위의 예제에서 처럼 자료형의 이름을 한번이라도 덜 입력해도 됩니다. 두번째, 안정성. 포인터와 객체가 동시에 생성되기 때문에 익히 알려줘 왔던 shared_pointer의 unnamed leak를 방지할 수 있습니다. 마지막으로, 효율성. 이전 버전에서 처럼 shared_ptr을 선언하면 동적할당이 두 번 일어나게 되지만, mak.. 더보기