std:: inout_ptr
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Non-member functions | ||||
|
inout_ptr
|
|
Definiert im Header
<memory>
|
||
|
template
<
class
Pointer
=
void
,
class
Smart,
class
...
Args
>
auto inout_ptr ( Smart & s, Args && ... args ) ; |
(seit C++23) | |
Gibt einen
inout_ptr_t
mit abgeleiteten Template-Argumenten zurück, der Argumente zurücksetzt und per Referenz erfasst.
Das Programm ist fehlerhaft, wenn die Konstruktion des Rückgabewertes (siehe unten) fehlerhaft ist.
Inhaltsverzeichnis |
Parameter
| s | - | das Objekt (typischerweise ein Smart Pointer), das angepasst werden soll |
| args... | - | die Argumente für das Zurücksetzen, die erfasst werden sollen |
Rückgabewert
std::
inout_ptr_t
<
Smart, P, Args
&&
>
(
s,
std::
forward
<
Args
>
(
args
)
...
)
, wobei
P
ist
-
Pointer, fallsPointerkein void -Typ ist, andernfalls - Smart :: pointer , falls es gültig ist und einen Typ bezeichnet, andernfalls
- Smart :: element_type * , falls Smart :: element_type gültig ist und einen Typ bezeichnet, andernfalls
- std:: pointer_traits < Smart > :: element_type * .
Hinweise
Benutzer können das Template-Argument für den Template-Parameter
Pointer
angeben, um mit Fremdfunktionen zu interagieren, die einen
Pointer
*
entgegennehmen.
Da alle Argumente für das Zurücksetzen als Referenz erfasst werden, sollte das zurückgegebene
inout_ptr_t
ein temporäres Objekt sein, das am Ende des vollständigen Ausdrucks zerstört wird, der den Aufruf der Fremdfunktion enthält, um hängende Referenzen zu vermeiden.
| Feature-Test Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_out_ptr
|
202106L
|
(C++23) |
std::out_ptr
,
std::inout_ptr
|
202311L
|
(C++26) |
Freestanding
std::out_ptr
und
std::inout_ptr
|
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Siehe auch
|
(C++23)
|
erstellt einen
out_ptr_t
mit einem zugehörigen Smart Pointer und Reset-Argumenten
(Funktions-Template) |
|
(C++14)
(C++20)
|
erstellt einen Unique Pointer, der ein neues Objekt verwaltet
(Funktions-Template) |
|
erstellt einen Shared Pointer, der ein neues Objekt verwaltet
(Funktions-Template) |