#include <iostream>
using namespace std;
#ifdef _MSC_VER
#define __PRETTY_FUNCTION__ __FUNCSIG__
#endif
class Foo
{
public:
Foo()
{
cout << __PRETTY_FUNCTION__ << endl;
}
Foo(Foo&&)
{
cout << __PRETTY_FUNCTION__ << endl;
}
Foo(const Foo&)
{
cout << __PRETTY_FUNCTION__ << endl;
}
};
void Bar(Foo & a) {}
int main() {
Foo f;
Foo &f2 = f;
cout << "@@@@@@+" << endl;
auto lambda = [f2]() /*mutable*/ {
Foo foo = move(f2); // No use.
Bar(foo);
};
cout << "@@@@@@-" << endl;
lambda();
// your code goes here
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojaWZkZWYgX01TQ19WRVIKI2RlZmluZSBfX1BSRVRUWV9GVU5DVElPTl9fIF9fRlVOQ1NJR19fCiNlbmRpZgpjbGFzcyBGb28KewpwdWJsaWM6CiAgRm9vKCkKICB7CiAgICBjb3V0IDw8IF9fUFJFVFRZX0ZVTkNUSU9OX18gPDwgZW5kbDsKICB9CiAgRm9vKEZvbyYmKQogIHsKICAgIGNvdXQgPDwgX19QUkVUVFlfRlVOQ1RJT05fXyA8PCBlbmRsOwogIH0KICBGb28oY29uc3QgRm9vJikKICB7CiAgICBjb3V0IDw8IF9fUFJFVFRZX0ZVTkNUSU9OX18gPDwgZW5kbDsKICB9Cgp9Owp2b2lkIEJhcihGb28gJiBhKSB7fQppbnQgbWFpbigpIHsKICBGb28gZjsKICBGb28gJmYyID0gZjsKICBjb3V0IDw8ICJAQEBAQEArIiA8PCBlbmRsOwogIGF1dG8gbGFtYmRhID0gW2YyXSgpIC8qbXV0YWJsZSovIHsKICAgIEZvbyBmb28gPSBtb3ZlKGYyKTsgLy8gTm8gdXNlLgogICAgQmFyKGZvbyk7CiAgfTsKICBjb3V0IDw8ICJAQEBAQEAtIiA8PCBlbmRsOwogIGxhbWJkYSgpOwogIC8vIHlvdXIgY29kZSBnb2VzIGhlcmUKICByZXR1cm4gMDsKfQ==