language: C++11 (gcc-4.7.2)
date: 472 days 23 hours ago
link:
visibility: public
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
class A
{
public:
        A() { printf("ctor %X\n", this); }
        A(const A& v) { printf("copy %X=%X\n", this, &v); *this=v; }
        int v, v2;
};
 
A fn(A v) { printf("fn %X\n", &v); v.v=9; return v; }
A fn2(A v) { printf("fn2 %X\n", &v); return fn(v); }
int main(){
        printf("Test 1\n");
        A a;
        A b = fn(a);
        printf("addr=%X\n", &b);
        printf("Test 2\n");
        A c = fn(A());
        printf("addr=%X\n", &c);
        printf("Test 3\n");
        A d = fn2(A());
        printf("addr=%X\n", &d);
}