Namespaces
Variants

std::auto_ptr<T>:: auto_ptr

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
explicit auto_ptr ( X * p = 0 ) throw ( ) ;
(1) (C++11에서 사용 중단됨)
(C++17에서 제거됨)
auto_ptr ( auto_ptr & r ) throw ( ) ;
(2) (C++11에서 사용 중단됨)
(C++17에서 제거됨)
template < class Y >
auto_ptr ( auto_ptr < Y > & r ) throw ( ) ;
(3) (C++11에서 사용 중단됨)
(C++17에서 제거됨)
auto_ptr ( auto_ptr_ref < X > m ) throw ( ) ;
(4) (C++11에서 사용 중단됨)
(C++17에서 제거됨)

관리할 객체를 참조하는 포인터로부터 auto_ptr 을 생성합니다.

1) auto_ptr 를 포인터 p 로 생성합니다.
2) auto_ptr r 에서 보유한 포인터로 생성합니다. r. release ( ) 가 호출되어 객체의 소유권을 획득합니다.
3) (2)와 동일합니다. Y * T * 로 암시적으로 변환 가능해야 합니다.
4) auto_ptr 인스턴스가 m 이 참조하는 auto_ptr 인스턴스에 보유된 포인터로 auto_ptr 을 생성합니다. 객체의 소유권을 획득하기 위해 m 이 보유하는 auto_ptr p 에 대해 p. release ( ) 가 호출됩니다.
auto_ptr_ref auto_ptr 에 대한 참조를 보유하는 구현 정의 타입입니다. std::auto_ptr 는 이 타입으로 암시적으로 변환 가능하며 이 타입으로부터 할당 가능합니다 . 구현체는 이 템플릿에 다른 이름을 제공하거나 다른 방식으로 동등한 기능을 구현할 수 있습니다.

매개변수

p - 관리할 객체에 대한 포인터
r - 객체의 소유권을 이전할 또 다른 auto_ptr
m - auto_ptr 에 대한 참조를 보유하는 구현 정의 타입

참고 사항

auto_ptr_ref 의 생성자와 복사 할당 연산자는 이름 없는 임시 객체로부터 std::auto_ptr 을 복사 생성하고 할당할 수 있도록 제공됩니다. 복사 생성자와 복사 할당 연산자가 인자를 비-const 참조로 받기 때문에, 이들은 rvalue 인자를 직접 바인딩할 수 없습니다. 그러나 사용자 정의 변환 이 실행된 후(이 과정에서 원본 auto_ptr 이 해제됨), 값으로 auto_ptr_ref 를 받는 생성자나 복사 할당 연산자를 호출할 수 있습니다. 이는 이동 의미론 의 초기 구현입니다.