std::function_ref
| Definiert in der Header-Datei <functional> |
||
| template< class... > class function_ref; // nicht definiert |
(1) | (seit C++26) |
| template< class R, class... Args > class function_ref<R(Args...)>; |
(2) | (seit C++26) |
Die Klassenvorlage std::function_ref ist ein nicht-besitzender Funktionswrapper. std::function_ref-Objekte können Referenzen auf Callable-Targets speichern und aufrufen – Funktionen, Lambda-Ausdrücke, bind-Ausdrücke oder andere Funktions-Objekte, aber keine Zeiger auf Memberfunktionen und Zeiger auf Member-Objekte. std::nontype kann verwendet werden, um std::function_ref durch Übergabe von Funktionszeigern, Zeigern auf Memberfunktionen und Zeigern auf Member-Objekte zu konstruieren.
std::function_refs unterstützen jede mögliche Kombination von cv-Qualifizierern (ausgenommen volatile) und noexcept-Spezifizierern, die in seinem Template-Parameter angegeben sind.
Jede Spezialisierung von std::function_ref ist ein TriviallyCopyable-Typ, der copyable erfüllt.
Inhalt |
[bearbeiten] Member types
| Mitglied | Definition |
BoundEntityType (private) |
nicht spezifizierter TriviallyCopyable-Typ, der copyable erfüllt und einen Zeiger auf einen Objektwert oder einen Zeiger auf einen Funktionswert speichern kann((nur zur Veranschaulichung)*) |
FunctionPointerType (private) |
R(*)(BoundEntityType , Args&&...) noexcept(noex )
wobei noex true ist, wenn noexcept in der Funktionssignatur als Teil des Template-Parameters von |
[bearbeiten] Data members
| Mitglied | Definition |
BoundEntityType bound-entity |
ein gebundenes Entitätsobjekt ((exposition-only member object*) |
FunctionPointerType thunk-ptr |
ein gespeicherter Funktionszeiger ((exposition-only member object*) |
[bearbeiten] Member functions
konstruiert ein neues function_ref-Objekt(public member function) | |
weist ein function_ref zu(public member function) | |
ruft den gespeicherten Thunk eines function_ref auf(public member function) |
[bearbeiten] Deduction guides
[bearbeiten] Notes
| Feature-Test-Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_function_ref |
202306L |
(C++26) | std::function_ref
|
[bearbeiten] Example
| Dieser Abschnitt ist unvollständig Reason: example |
[bearbeiten] See also
| (C++11) |
kopierfähiger Wrapper für jedes kopierkonstruierbare aufrufbare Objekt (Klassen-Template) |
| (C++26) |
kopierfähiger Wrapper für jedes kopierkonstruierbare aufrufbare Objekt, das Qualifizierer in einer gegebenen Aufrufsignatur unterstützt (Klassen-Template) |
| (C++23) |
Move-only-Wrapper für jedes aufrufbare Objekt, das Qualifizierer in einer gegebenen Aufrufsignatur unterstützt (Klassen-Template) |
| (C++26) |
Tag für Wertkonstruktion (Tag) |