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