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; ... }