std::reference_wrapper<T>::reference_wrapper
Depuis fr.cppreference.net
template< class U >
reference_wrapper( U&& x ) noexcept(/*see below*/) ;
|
(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 à 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 nomme l'ensemble des fonctions imaginaires
void FUN(T&) noexcept;
void FUN(T&&) = delete;
2) Constructeur de copie. Stocke une référence à
other.get().Paramètres
| x | - | un objet à encapsuler |
| other | - | un autre wrapper de référence |
Exceptions
1)
noexcept
spécification :
où
noexcept
(
noexcept
(
FUN
(
std::
declval
<
U
>
(
)
)
)
)
FUN
est l'ensemble des fonctions imaginaires décrites dans la description ci-dessus.
Exemple
|
Cette section est incomplète
Raison : aucun 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 |