Namespaces
Variants

std::reference_wrapper<T>::reference_wrapper

De es.cppreference.net
 
 
Biblioteca de utilidades
Soporte del lenguaje
Soporte de tipos (tipos básicos, RTTI)
Macros de prueba de características de la biblioteca (C++20)
Utilidades de programa
Funciones variádicas
Soporte de corrutinas (C++20)
Soporte de contratos (C++26)
Comparación de tres vías
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilidades generales
Operadores relacionales (obsoleto en C++20)
 
Objetos función
Invocación de función
(C++17)(C++23)
Objeto función identidad
(C++20)
Envoltorios de operadores transparentes
(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)

Binders y adaptadores antiguos
(hasta C++17*)
(hasta C++17*)
(hasta C++17*)
(hasta C++17*)  
(hasta C++17*)
(hasta C++17*)(hasta C++17*)(hasta C++17*)(hasta C++17*)
(hasta C++20*)
(hasta C++20*)
(hasta C++17*)(hasta C++17*)
(hasta C++17*)(hasta C++17*)

(hasta C++17*)
(hasta C++17*)(hasta C++17*)(hasta C++17*)(hasta C++17*)
(hasta C++20*)
(hasta C++20*)
 
 
template< class U >
reference_wrapper( U&& x ) noexcept(/*see below*/) ;
(1) (desde C++11)
(constexpr desde C++20)
reference_wrapper( const reference_wrapper& other ) noexcept;
(2) (desde C++11)
(constexpr desde C++20)

Construye un nuevo envoltorio de referencia.

1) Convierte x a T& como si fuera por T& t = std::forward<U>(x);, luego almacena una referencia a t. Esta sobrecarga participa en la resolución de sobrecarga solo si typename std::decay<U>::type no es del mismo tipo que reference_wrapper y la expresión FUN(std::declval<U>()) está bien formada, donde FUN nombra al conjunto de funciones imaginarias
void FUN(T&) noexcept;
void FUN(T&&) = delete;
2) Constructor de copia. Almacena una referencia a other.get().

Parámetros

x - un objeto a envolver
other - otro envoltorio de referencia

Excepciones

1)
noexcept especificación:
noexcept ( noexcept ( FUN ( std:: declval < U > ( ) ) ) )
donde FUN es el conjunto de funciones imaginarias descritas en la descripción anterior.

Ejemplo

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 2993 C++11 el constructor reference_wrapper(T&&) eliminado interfiere
con la resolución de sobrecarga en algunos casos
reemplazado con una plantilla de constructor