Namespaces
Variants

std::reference_wrapper<T>:: reference_wrapper

From cppreference.net
Utilities library
Function objects
Function invocation
(C++17) (C++23)
Identity function object
(C++20)
Old binders and adaptors
( until C++17* )
( until C++17* )
( until C++17* )
( until C++17* )
( until C++17* ) ( until C++17* ) ( until C++17* ) ( until C++17* )
( until C++20* )
( until C++20* )
( until C++17* ) ( until C++17* )
( until C++17* ) ( until C++17* )

( until C++17* )
( until C++17* ) ( until C++17* ) ( until C++17* ) ( until C++17* )
( until C++20* )
( until C++20* )
template < class U >
reference_wrapper ( U && x ) noexcept ( /*voir ci-dessous*/ ) ;
(1) (depuis C++11)
(constexpr depuis C++20)
reference_wrapper ( const reference_wrapper & other ) noexcept ;
(2) (depuis C++11)
(constexpr depuis C++20)

Construit un nouveau wrapper de référence.

1) Convertit x en T& comme par T & t = std:: forward < U > ( x ) ; , puis stocke une référence vers t . Cette surcharge participe à la résolution de surcharge seulement si typename std:: decay < U > :: type n'est pas du même type que reference_wrapper et que l'expression FUN ( std:: declval < U > ( ) ) est bien formée, où FUN désigne l'ensemble des fonctions imaginaires
void FUN(T&) noexcept;
void FUN(T&&) = delete;
2) Constructeur de copie. Stocke une référence à other. get ( ) .

Table des matières

Paramètres

x - un objet à encapsuler
other - un autre wrapper de référence

Exceptions

1)
noexcept spécification :
noexcept ( noexcept ( FUN ( std:: declval < U > ( ) ) ) )
FUN est l'ensemble des fonctions imaginaires décrites dans la description ci-dessus.

Exemple

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Appliqué à Comportement tel que publié Comportement correct
LWG 2993 C++11 constructeur reference_wrapper(T&&) supprimé interfère
avec la résolution de surcharge dans certains cas
remplacé par un constructeur template