1 | // This structure has a non-trivial copy constructor so |
---|---|
2 | // it needs to be passed by reference. |
3 | struct PassByRef { |
4 | PassByRef() = default; |
5 | PassByRef(const PassByRef &p){x = p.x;}; |
6 | |
7 | int x = 11223344; |
8 | }; |
9 | |
10 | PassByRef returnPassByRef() { return PassByRef(); } |
11 | int takePassByRef(PassByRef p) { |
12 | return p.x; |
13 | } |
14 | |
15 | int main() { |
16 | PassByRef p = returnPassByRef(); |
17 | p.x = 42; |
18 | return takePassByRef(p); // break here |
19 | } |
20 |