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
#include <iostream>
#include <type_traits>
template<typename T>
class Wrapper
{
public:
Wrapper(T const& value) : value_(value) {}
std::remove_reference_t<T> const& get() const { return value_; }
private:
T value_;
};
int main()
{
using IntRefWrapper = Wrapper<int&>;
int a = 42;
IntRefWrapper intRefWrapper(a);
intRefWrapper.get() = 43;
std::cout << "a is now " << a << '\n';
}
Enter to Rename, Shift+Enter to Preview