더북(TheBook)

C++11 1.8.3 스마트 포인터

C++11에 새로운 스마트 포인터 타입 3가지를 도입했다. 바로 unique_ptr, shared_ptr, weak_ptr이다. C++03에 이미 존재하고 있던 스마트 포인터인 auto_ptr는 그 당시에 언어 차원에서 지원하지 않았기 때문에 일반적으로 unique_ptr를 만들려고 했던 시도가 실패한 것으로 간주한다. 따라서 더는 사용하면 안 된다. 모든 스마트 포인터는 <memory> 헤더에 정의되어 있다. 플랫폼(예: 임베디드 프로그래밍)에서 C++11 기능을 사용할 수 없는 경우, Boost에 있는 스마트 포인터로 대체할 수 있다.

C++11 1.8.3.1 unique_ptr

이 포인터의 이름은 참조한 데이터의 고유 소유권(Unique Ownership)을 나타낸다. 기본적으로 일반 포인터와 같이 사용할 수 있다.

#include <memory>

int main()
{
    unique_ptr<double> dp{new double};
    *dp = 7;
    ...
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.