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