Namespaces
Variants

std::reference_wrapper<T>::reference_wrapper

Von de.cppreference.net
 
 
Dienstprogrammbibliothek
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Funktionen mit variabler Argumentanzahl
Koroutinenunterstützung (C++20)
Vertragsunterstützung (C++26)
Dreiseitiger 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)
Tausch 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 Adapter
(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*)
 
 
template< class U >
reference_wrapper( U&& x ) noexcept(/*see below*/) ;
(1) (seit C++11)
(constexpr seit C++20)
reference_wrapper( const reference_wrapper& other ) noexcept;
(2) (seit C++11)
(constexpr seit C++20)

Erzeugt einen neuen Referenz-Wrapper.

1) Konvertiert x nach T& wie durch T& t = std::forward<U>(x); und speichert dann eine Referenz auf t. Diese Überladung nimmt nur an der Überladungsauflösung teil, wenn typename std::decay<U>::type nicht derselbe Typ wie reference_wrapper ist und der Ausdruck FUN(std::declval<U>()) wohlgeformt ist, wobei FUN die Menge der imaginären Funktionen benennt
void FUN(T&) noexcept;
void FUN(T&&) = delete;
2) Kopierkonstruktor. Speichert eine Referenz auf other.get().

Parameter

x - ein zu umschließendes Objekt
other - ein weiterer Referenz-Wrapper

Ausnahmen

1)
noexcept Spezifikation:
noexcept ( noexcept ( FUN ( std:: declval < U > ( ) ) ) )
wobei FUN die Menge der imaginären Funktionen aus der obigen Beschreibung ist.

Beispiel

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 2993 C++11 gelöschter reference_wrapper(T&&) Konstruktor beeinträchtigt
die Überladungsauflösung in einigen Fällen
ersetzt durch einen Konstruktor-Template