std::inout_ptr_t<Smart,Pointer,Args...>:: inout_ptr_t
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
|
inout_ptr_t::inout_ptr_t
|
||||
| Non-member functions | ||||
|
explicit
inout_ptr_t
(
Smart
&
sp, Args...
args
)
;
|
(1) | (начиная с C++23) |
|
inout_ptr_t
(
const
inout_ptr_t
&
)
=
delete
;
|
(2) | (начиная с C++23) |
inout_ptr_t
. Адаптирует
sp
, как если бы привязывал его к члену
Smart
&
, захватывает каждый аргумент
t
в
args...
как если бы инициализировал соответствующий член типа
T
в
Args...
с помощью
std::
forward
<
T
>
(
t
)
, затем инициализирует сохраненный
Pointer
значением
sp
если
Smart
является типом указателя, в противном случае инициализирует его значением
sp.
get
(
)
.
sp.
release
(
)
может быть вызван если
Smart
не является типом указателя, в этом случае он не будет вызван повторно в деструкторе.
inout_ptr_t
не является копируемым или перемещаемым.
Содержание |
Параметры
| sp | - | объект (обычно умный указатель) для адаптации |
| args... | - | аргументы для захвата, используемые при сбросе |
Возвращаемое значение
(нет)
Исключения
Может выбрасывать исключения, определяемые реализацией.
Примечания
Если
Smart
не является типом указателя и
sp.
release
(
)
не вызывается конструктором, он может быть вызван деструктором перед сбросом
sp
.
Каждый аргумент в
args...
перемещается в созданный
inout_ptr_t
если он имеет объектный тип, или передаётся в созданный
inout_ptr_t
как есть, если он имеет ссылочный тип.
Конструктор
inout_ptr_t
может генерировать исключения. Например, когда
sp
является интрузивным указателем с блоком управления, выделение памяти для нового блока управления может выполняться в конструкторе, а не в деструкторе.
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |