Namensräume
Varianten
Aktionen

std::function_ref

Von cppreference.com
< cpp‎ | utility‎ | functional
 
 
Dienstprogramm-Bibliotheken
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Coroutine-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 Hilfsmittel
Relationale Operatoren (in C++20 veraltet)
 
Funktionsobjekte
Funktions-Wrapper
(C++11)
function_ref
(C++26)
(C++11)
Funktionsaufruf
(C++17)(C++23)
Identitätsfunktions-Objekt
(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 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...)>;
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 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 std::function_ref vorhanden ist, andernfalls false.
((nur zur Veranschaulichung)*)

[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) [bearbeiten]
weist ein function_ref zu
(public member function) [bearbeiten]
ruft den gespeicherten Thunk eines function_ref auf
(public member function) [bearbeiten]

[bearbeiten] Deduction guides

[bearbeiten] Notes

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

[bearbeiten] Example

[bearbeiten] See also

(C++11)
kopierfähiger Wrapper für jedes kopierkonstruierbare aufrufbare Objekt
(Klassen-Template) [bearbeiten]
kopierfähiger Wrapper für jedes kopierkonstruierbare aufrufbare Objekt, das Qualifizierer in einer gegebenen Aufrufsignatur unterstützt
(Klassen-Template) [bearbeiten]
Move-only-Wrapper für jedes aufrufbare Objekt, das Qualifizierer in einer gegebenen Aufrufsignatur unterstützt
(Klassen-Template) [bearbeiten]
Tag für Wertkonstruktion
(Tag)[edit]