public member function
<functional>

std::reference_wrapper::operator=

reference_wrapper& operator= (const reference_wrapper& rhs) noexcept;
Copy assignment
Copies the reference held by rhs, replacing the reference currently held in *this.

After the call, both rhs and *this refer to the same object or function.

Parameters

rhs
A reference_wrapper object of the same type (i.e., with the same template parameter, T).

Return value

*this

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// reference_wrapper::operator= #include <iostream> // std::cout #include <functional> // std::reference_wrapper int main () { int a,b; // reference_wrapper assignment: a=10; b=20; std::reference_wrapper<int> wrap1 (a); std::reference_wrapper<int> wrap2 (b); wrap1 = wrap2; ++wrap1; ++wrap2; std::cout << "a: " << a << '\n'; std::cout << "b: " << b << '\n'; std::cout << '\n'; // note the difference with: a=10; b=20; int& ref1 (a); int& ref2 (b); ref1 = ref2; ++ref1; ++ref2; std::cout << "a: " << a << '\n'; std::cout << "b: " << b << '\n'; return 0; }

Output:
a: 10 b: 22 a: 21 b: 21 


Data races

The object is modified.
The object acquires a reference to the element referred by rhs (rhs.get()), which can be used to access or modify it.

Exception safety

No-throw guarantee: this member function never throws exceptions.

See also