std:: copyable_function
|
Definiert im Header
<functional>
|
||
|
template
<
class
...
>
class copyable_function ; // nicht definiert |
(1) | (seit C++26) |
|
template
<
class
R,
class
...
Args
>
class
copyable_function
<
R
(
Args...
)
>
;
|
(2) | (seit C++26) |
Die Klassenvorlage
std::copyable_function
ist ein universeller polymorpher Funktionswrapper.
std::copyable_function
-Objekte können jedes
CopyConstructible
Callable
Ziel
speichern und aufrufen — Funktionen,
Lambda-Ausdrücke
,
Bind-Ausdrücke
, oder andere Funktionsobjekte, sowie Zeiger auf Elementfunktionen und Zeiger auf Elementobjekte.
Das gespeicherte aufrufbare Objekt wird als das
Zielobjekt
von
std::copyable_function
bezeichnet. Wenn eine
std::copyable_function
kein Zielobjekt enthält, wird sie als
leer
bezeichnet. Im Gegensatz zu
std::function
führt der Aufruf einer
leeren
std::copyable_function
zu undefiniertem Verhalten.
std::copyable_function
unterstützt jede mögliche Kombination von
CV-Qualifizierern
(ohne
volatile
),
Ref-Qualifizierern
und
noexcept-Spezifizierern
, die in seinem Template-Parameter angegeben sind. Diese Qualifizierer und Spezifizierer (falls vorhanden) werden zu seinem
operator()
hinzugefügt.
std::copyable_function
erfüllt die Anforderungen von
CopyConstructible
und
CopyAssignable
.
Inhaltsverzeichnis |
Mitgliedertypen
| Typ | Definition |
result_type
|
R
|
Memberfunktionen
konstruiert ein neues
std::copyable_function
Objekt
(öffentliche Elementfunktion) |
|
zerstört ein
std::copyable_function
Objekt
(öffentliche Elementfunktion) |
|
|
ersetzt oder zerstört das Zielobjekt
(öffentliche Elementfunktion) |
|
tauscht die Ziele zweier
std::copyable_function
Objekte
(öffentliche Elementfunktion) |
|
prüft ob die
std::copyable_function
ein Zielobjekt besitzt
(öffentliche Elementfunktion) |
|
|
ruft das Zielobjekt auf
(öffentliche Elementfunktion) |
Nicht-Member-Funktionen
|
(C++26)
|
überlädt den
std::swap
Algorithmus
(Funktion) |
|
(C++26)
|
vergleicht ein
std::copyable_function
mit
nullptr
(Funktion) |
Hinweise
Implementierungen können ein aufrufbares Objekt kleiner Größe innerhalb des
std::copyable_function
Objekts speichern. Eine solche Small-Object-Optimierung ist effektiv für Funktionszeiger und
std::reference_wrapper
Spezialisierungen erforderlich und kann nur auf Typen
T
angewendet werden, für die
std::
is_nothrow_move_constructible_v
<
T
>
true
ist.
| Feature-Test Makro | Wert | Standard | Funktion |
|---|---|---|---|
__cpp_lib_copyable_function
|
202306L
|
(C++26) |
std::copyable_function
|
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Siehe auch
|
(C++11)
|
kopierbarer Wrapper für jedes kopierkonstruierbare aufrufbare Objekt
(Klassentemplate) |
|
(C++23)
|
Nur-verschiebbarer Wrapper für jedes aufrufbare Objekt, das Qualifier in einer gegebenen Aufrufsignatur unterstützt
(Klassentemplate) |
|
(C++26)
|
nicht-besitzender Wrapper für jedes aufrufbare Objekt
(Klassentemplate) |