#include <iostream>
using namespace std;
struct A {
static int b;
A() { std::cout << "A() "; }
A(const A& a){ std::cout << "A(const A&) ";}
A(A && a) { std::cout << "A(A&&) "; }
~A() { std::cout << "~A() "; }
};
int A::b = 3;
A f(A a) {
std::cout << a.b << " ";
return a;
}
int main() {
A a1, a2;
++a1.b;
f(a2);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IEEgewogICAgc3RhdGljIGludCBiOwogICAgQSgpIHsgc3RkOjpjb3V0IDw8ICJBKCkgIjsgfQogICAgQShjb25zdCBBJiBhKXsgc3RkOjpjb3V0IDw8ICJBKGNvbnN0IEEmKSAiO30KICAgIEEoQSAmJiBhKSB7IHN0ZDo6Y291dCA8PCAiQShBJiYpICI7IH0KICAgIH5BKCkgeyBzdGQ6OmNvdXQgPDwgIn5BKCkgIjsgfQp9OwoKaW50IEE6OmIgPSAzOwoKCkEgZihBIGEpIHsgCiAgICAgICBzdGQ6OmNvdXQgPDwgYS5iIDw8ICIgIjsgCiAgICAgICByZXR1cm4gYTsgCiAgfQoKaW50IG1haW4oKSB7CgkgQSBhMSwgYTI7CgkgKythMS5iOwoJIGYoYTIpOwoJIHJldHVybiAwOwogIH0K