- functional[meta header]
- std[meta namespace]
- reference_wrapper[meta class]
- function[meta id-type]
- cpp11[meta cpp]
reference_wrapper& operator=(const reference_wrapper<T>& x) noexcept; //C++11
constexpr reference_wrapper& operator=(const reference_wrapper<T>& x) noexcept; //C++20
参照先を切り替える
*this
がx.get()
を指すように更新する
*this
#include <iostream>
#include <functional>
int main()
{
int x = 3;
int y = 5;
// xへの参照を保持する
std::reference_wrapper<int> r(x);
r = std::ref(y); // yへの参照を保持するよう切り替える
r.get() += 1;
std::cout << x << std::endl;
std::cout << y << std::endl;
}
- std::ref[link /reference/functional/ref.md]
- r.get()[link get.md]
3
6
- C++11
- Clang: ??
- GCC: 4.7.0 [mark verified]
- ICC: ??
- Visual C++: ??