std::reference_wrapper<T>:: reference_wrapper
From cppreference.net
<
cpp
|
utility
|
functional
|
reference wrapper
C++
Utilities library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Function objects
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Old binders and adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::reference_wrapper
| Member functions | ||||
|
reference_wrapper::reference_wrapper
|
||||
| Non-member functions | ||||
|
(C++26)
(C++26)
|
||||
| Deduction guides (C++17) | ||||
| Helper classes | ||||
|
template
<
class
U
>
reference_wrapper ( U && x ) noexcept ( /*siehe unten*/ ) ; |
(1) |
(seit C++11)
(constexpr seit C++20) |
|
reference_wrapper
(
const
reference_wrapper
&
other
)
noexcept
;
|
(2) |
(seit C++11)
(constexpr seit C++20) |
Konstruiert einen neuen Referenz-Wrapper.
1)
Wandelt
x
in
T&
um, als ob durch
T
&
t
=
std::
forward
<
U
>
(
x
)
;
, dann speichert es eine Referenz auf
t
. Diese Überladung nimmt nur dann an der Überladungsauflösung teil, wenn
typename
std::
decay
<
U
>
::
type
nicht der gleiche Typ wie
reference_wrapper
ist und der Ausdruck
FUN
(
std::
declval
<
U
>
(
)
)
wohlgeformt ist, wobei
FUN
die Menge der imaginären Funktionen bezeichnet
void FUN(T&) noexcept; void FUN(T&&) = delete;
2)
Kopierkonstruktor. Speichert eine Referenz auf
other.
get
(
)
.
Inhaltsverzeichnis |
Parameter
| x | - | ein zu umschließendes Objekt |
| other | - | ein weiterer Referenz-Wrapper |
Ausnahmen
1)
noexcept
Spezifikation:
wobei
noexcept
(
noexcept
(
FUN
(
std::
declval
<
U
>
(
)
)
)
)
FUN
die Menge der imaginären Funktionen aus der obigen Beschreibung ist.
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein 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 |