std::reference_wrapper<T>::reference_wrapper
From cppreference.com
< 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 ( /*see below*/ ) ; |
(1) | (since C++11) (constexpr since C++20) |
reference_wrapper(
const reference_wrapper& other )
noexcept
;
|
(2) | (since C++11) (constexpr since C++20) |
Constructs a new reference wrapper.
1) Converts x to
T&
as if by
T& t =
std::forward
<U>
(x)
;
, then stores a reference to t
. This overload participates in overload resolution only if
typename
std::decay
<U>
::
type
is not the same type as reference_wrapper
and the expression
FUN(
std::declval
<U>
(
)
)
is well-formed, where FUN
names the set of imaginary functions
void FUN(T&) noexcept; void FUN(T&&) = delete;
2) Copy constructor. Stores a reference to other.get()
Parameters
x | - | an object to wrap |
other | - | another reference wrapper |
Exceptions
Example
This section is incomplete Reason: no example |
Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR | Applied to | Behavior as published | Correct behavior |
---|---|---|---|
LWG 2993 | C++11 | deleted reference_wrapper(T&&) constructor interfereswith overload resolution in some cases |
replaced with a constructor template |