Namespaces
Variants

std::function_ref

Von de.cppreference.net
 
 
Dienstprogrammbibliothek
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Koroutinen-Unterstützung (C++20)
Vertragsunterstützung (C++26)
Drei-Wege-Vergleich
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Allgemeine Dienstprogramme
Relationale Operatoren (veraltet in C++20)
Integer-Vergleichsfunktionen
(C++20)(C++20)(C++20)    
(C++20)
Swap und Typoperationen
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Allgemeine Vokabular-Typen
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
Funktionsobjekte
Funktionsaufruf
(C++17)(C++23)
Identitätsfunktionsobjekt
(C++20)
Transparente Operator-Wrapper
(C++14)
(C++14)
(C++14)
(C++14)  
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)

Alte Binder und Adaptoren
(bis C++17*)
(bis C++17*)
(bis C++17*)
(bis C++17*)
(bis C++17*)(bis C++17*)(bis C++17*)(bis C++17*)
(bis C++20*)
(bis C++20*)
(bis C++17*)(bis C++17*)
(bis C++17*)(bis C++17*)

(bis C++17*)
(bis C++17*)(bis C++17*)(bis C++17*)(bis C++17*)
(bis C++20*)
(bis C++20*)
 
 
Definiert im Header <functional>
template< class... >
class function_ref; // not defined
(1) (seit C++26)
template< class R, class... Args >
class function_ref<R(Args...)>;
template< class R, class... Args >
class function_ref<R(Args...) noexcept>;
template< class R, class... Args >
class function_ref<R(Args...) const>;
template< class R, class... Args >
class function_ref<R(Args...) const noexcept>;
(2) (seit C++26)

Die Klassenschablone std::function_ref ist ein nicht-besitzender Funktions-Wrapper. std::function_ref-Objekte können eine Referenz auf ein aufrufbares Ziel speichern und aufrufen – Funktionen, Lambda-Ausdrücke, Bind-Ausdrücke oder andere Funktionsobjekte, jedoch keine Zeiger auf Elementfunktionen und Zeiger auf Elementdaten. std::nontype kann verwendet werden, um std::function_ref zu konstruieren, indem Funktionszeiger, Zeiger auf Elementfunktionen und Zeiger auf Elementdaten übergeben werden.

std::function_refs unterstützen jede mögliche Kombination von cv-Qualifikatoren (ausschließlich volatile) und noexcept-Spezifikationen, die in ihrem Template-Parameter angegeben sind.

Jede Spezialisierung von std::function_ref ist ein TriviallyCopyable-Typ, der copyable erfüllt.

Mitgliedertypen

Mitglied Definition
BoundEntityType (privat) nicht spezifizierter TriviallyCopyable Typ, der copyable erfüllt und in der Lage ist, einen Zeiger auf Objektwert oder Zeiger auf Funktionswert zu speichern
( Nur-Darstellungs-Mitgliedstyp* )
FunctionPointerType (privat) R ( * ) ( BoundEntityType  , Args && ... ) noexcept ( noex  )

wobei noex true ist, wenn noexcept in der Funktionssignatur als Teil des Template-Parameters von std::function_ref vorhanden ist, andernfalls false
( Nur-Darstellungs-Mitgliedstyp* )

Datenmitglieder

Mitglied Definition
BoundEntityType bound-entity ein gebundenes Entitätsobjekt
( Nur zur Veranschaulichung dienendes Mitgliedsobjekt* )
FunctionPointerType thunk-ptr ein gespeicherter Funktionszeiger
( Nur zur Veranschaulichung dienendes Mitgliedsobjekt* )

Memberfunktionen

konstruiert ein neues function_ref Objekt
(öffentliche Elementfunktion)
weist einen function_ref zu
(öffentliche Elementfunktion)
ruft den gespeicherten Thunk eines function_ref auf
(öffentliche Elementfunktion)

Ableitungsleitfäden

Hinweise

Feature-Test Makro Wert Std Feature
__cpp_lib_function_ref 202306L (C++26) std::function_ref

Beispiel

Siehe auch

(C++11)
kopierbarer Wrapper für jedes kopierkonstruierbare aufrufbare Objekt
(Klassentemplate)
kopierbarer Wrapper für jedes kopierkonstruierbare aufrufbare Objekt, das Qualifier in einer gegebenen Aufrufsignatur unterstützt
(Klassentemplate)
nur-verschiebbarer Wrapper für jedes aufrufbare Objekt, das Qualifier in einer gegebenen Aufrufsignatur unterstützt
(Klassentemplate)
Wertkonstruktions-Tag
(Tag)