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) | (seit C++23) |
|
inout_ptr_t
(
const
inout_ptr_t
&
)
=
delete
;
|
(2) | (seit C++23) |
inout_ptr_t
. Passt
sp
an, als würde es es an das
Smart
&
-Mitglied binden, erfasst jedes Argument
t
in
args...
als würde es das entsprechende Mitglied vom Typ
T
in
Args...
mit
std::
forward
<
T
>
(
t
)
initialisieren, initialisiert dann den gespeicherten
Pointer
mit
sp
falls
Smart
ein Zeigertyp ist, andernfalls initialisiert es ihn mit
sp.
get
(
)
.
sp.
release
(
)
kann aufgerufen werden, falls
Smart
kein Zeigertyp ist, in welchem Fall es im Destruktor nicht erneut aufgerufen wird.
inout_ptr_t
ist weder kopierbar noch verschiebbar.
Inhaltsverzeichnis |
Parameter
| sp | - | das Objekt (typischerweise ein Smart Pointer), das angepasst werden soll |
| args... | - | die Argumente, die für das Zurücksetzen erfasst werden sollen |
Rückgabewert
(keine)
Exceptions
Kann implementierungsdefinierte Ausnahmen auslösen.
Hinweise
Wenn
Smart
kein Zeigertyp ist und
sp.
release
(
)
nicht vom Konstruktor aufgerufen wird, kann es vom Destruktor vor dem Zurücksetzen von
sp
aufgerufen werden.
Jedes Argument in
args...
wird in das erstellte
inout_ptr_t
verschoben, wenn es von einem Objekttyp ist, oder unverändert in das erstellte
inout_ptr_t
übertragen, wenn es von einem Referenztyp ist.
Der Konstruktor von
inout_ptr_t
darf Ausnahmen werfen. Zum Beispiel, wenn
sp
ein intrusiver Zeiger mit einem Kontrollblock ist, kann die Allokation für den neuen Kontrollblock im Konstruktor statt im Destruktor durchgeführt werden.
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |