#include <iostream>
#include <iomanip>
using namespace std;
class Test {
public:
Test() { cout << "Test()" << endl; }
Test(int x):val_(x){ cout << "Test(" << x << ")" << endl; }
Test(const Test& t):val_(t.val_) { cout << "Test(const Test& " << t.val_ << ")" << endl; }
Test& operator = (const Test& t) {
cout << "Test& operator = (const Test& " << t.val_ <<")" << endl;
val_ = t.val_;
return *this;}
~Test() { cout << "~Test()" << endl; }
int val() const { return val_; }
private:
int val_ = 0;
};
int main(int argc, const char * argv[])
{
Test t = t;
cout << t.val() << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpjbGFzcyBUZXN0IHsKcHVibGljOgogICAgVGVzdCgpICAgICAgICAgICAgIHsgY291dCA8PCAiVGVzdCgpIiA8PCBlbmRsOyB9CiAgICBUZXN0KGludCB4KTp2YWxfKHgpeyBjb3V0IDw8ICJUZXN0KCIgPDwgeCA8PCAiKSIgPDwgZW5kbDsgfQogICAgVGVzdChjb25zdCBUZXN0JiB0KTp2YWxfKHQudmFsXykgeyBjb3V0IDw8ICJUZXN0KGNvbnN0IFRlc3QmICIgPDwgdC52YWxfIDw8ICIpIiA8PCBlbmRsOyB9CiAgICBUZXN0JiBvcGVyYXRvciA9IChjb25zdCBUZXN0JiB0KSAgewogICAgICAgIGNvdXQgPDwgIlRlc3QmIG9wZXJhdG9yID0gKGNvbnN0IFRlc3QmICIgPDwgdC52YWxfIDw8IikiIDw8IGVuZGw7CiAgICAgICAgdmFsXyA9IHQudmFsXzsKICAgICAgICByZXR1cm4gKnRoaXM7fQogICAgflRlc3QoKSAgICAgICAgICAgeyBjb3V0IDw8ICJ+VGVzdCgpIiA8PCBlbmRsOyB9CiAgICBpbnQgdmFsKCkgY29uc3QgeyByZXR1cm4gdmFsXzsgfQpwcml2YXRlOgogICAgaW50IHZhbF8gPSAwOwp9OwoKaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiBhcmd2W10pCnsKICAgIFRlc3QgdCA9IHQ7CiAgICBjb3V0IDw8IHQudmFsKCkgPDwgZW5kbDsKfQo=