std::auto_ptr<T>:: auto_ptr
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
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
из указателя, который ссылается на управляемый объект.
auto_ptr
с указателем
p
.
auto_ptr
с указателем, хранящимся в
r
.
r.
release
(
)
вызывается для получения владения объектом.
auto_ptr
с указателем, хранящимся в экземпляре
auto_ptr
, на который ссылается
m
.
p.
release
(
)
вызывается для
auto_ptr p
, который хранит
m
, чтобы получить владение объектом.
auto_ptr_ref
— это тип, определяемый реализацией, который содержит ссылку на
auto_ptr
.
std::auto_ptr
неявно
преобразуется в
и
присваивается из
этого типа. Реализация может использовать для этого шаблона другое имя или реализовать эквивалентную функциональность другими способами.
Параметры
| p | - | указатель на управляемый объект |
| r | - |
другой
auto_ptr
для передачи владения объектом от
|
| m | - |
тип, определяемый реализацией, который содержит ссылку на
auto_ptr
|
Примечания
Конструктор и оператор копирующего присваивания из
auto_ptr_ref
предоставляются для возможности копирующего конструирования и присваивания
std::auto_ptr
из безымянных временных объектов. Поскольку их конструктор копирования и оператор копирующего присваивания принимают аргумент по не-константной ссылке, они не могут напрямую связываться с rvalue-аргументами. Однако может быть выполнено
пользовательское преобразование
(которое освобождает исходный
auto_ptr
), за которым следует вызов конструктора или оператора копирующего присваивания, принимающих
auto_ptr_ref
по значению. Это ранняя реализация
семантики перемещения
.