std::out_ptr_t<Smart,Pointer,Args...>:: out_ptr_t
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
|
out_ptr_t::out_ptr_t
|
||||
| Non-member functions | ||||
|
explicit
out_ptr_t
(
Smart
&
sp, Args...
args
)
;
|
(1) | (seit C++23) |
|
out_ptr_t
(
const
out_ptr_t
&
)
=
delete
;
|
(2) | (seit C++23) |
out_ptr_t
. Passt
sp
an, als ob es an das
Smart
&
Mitglied bindet, erfasst jedes Argument
t
in
args...
als ob es das entsprechende Mitglied vom Typ
T
in
Args...
mit
std::
forward
<
T
>
(
t
)
initialisiert, dann wertinitialisiert den gespeicherten
Pointer
.
Dann ruft sp. reset ( ) auf, wenn der Ausdruck wohlgeformt ist; andernfalls ruft sp = Smart ( ) auf, wenn std:: is_default_constructible_v < Smart > true ist. Das Programm ist fehlerhaft, wenn beide Reset-Operationen fehlerhaft sind.
out_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
Nach der Konstruktion ist das
Pointer
oder das
void
*
Objekt, auf das der Rückgabewert einer der Konvertierungsfunktionen zeigt, gleich
nullptr
.
Jedes Argument in
args...
wird in das erstellte
out_ptr_t
verschoben, wenn es von einem Objekttyp ist, oder unverändert in das erstellte
out_ptr_t
übertragen, wenn es von einem Referenztyp ist.
Der Konstruktor von
out_ptr_t
kann Ausnahmen werfen. Zum Beispiel, wenn
sp
ein
std::shared_ptr
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 |