#include <iostream>
#include <utility>
using namespace std;
struct LogMe {
std::string member;
LogMe() {
cout << __FUNCTION__ << " - def.ctor!" << endl;
}
~LogMe() {
cout << __FUNCTION__ << " - dtor!" << endl;
}
LogMe(LogMe const&, int def=0) {
cout << __FUNCTION__ << " - cpy.ctor(with default arg)!" << endl;
}
LogMe& operator=(LogMe const&) {
cout << __FUNCTION__ << " - cpy.assign.op!" << endl;
return *this;
}
};
int main() {
cout << "# Construct Object via LogMe obj = LogMe()\n";
LogMe obj1 = LogMe();
cout << "# Construct Object via LogMe obj;\n";
LogMe obj2;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dXRpbGl0eT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBMb2dNZSB7CglzdGQ6OnN0cmluZyBtZW1iZXI7CgoJTG9nTWUoKSB7CgkJY291dCA8PCBfX0ZVTkNUSU9OX18gPDwgIiAtIGRlZi5jdG9yISIgPDwgZW5kbDsKCX0KCX5Mb2dNZSgpIHsKCQljb3V0IDw8IF9fRlVOQ1RJT05fXyA8PCAiIC0gZHRvciEiIDw8IGVuZGw7Cgl9CglMb2dNZShMb2dNZSBjb25zdCYsIGludCBkZWY9MCkgewoJCWNvdXQgPDwgX19GVU5DVElPTl9fIDw8ICIgLSBjcHkuY3Rvcih3aXRoIGRlZmF1bHQgYXJnKSEiIDw8IGVuZGw7Cgl9CglMb2dNZSYgb3BlcmF0b3I9KExvZ01lIGNvbnN0JikgewoJCWNvdXQgPDwgX19GVU5DVElPTl9fIDw8ICIgLSBjcHkuYXNzaWduLm9wISIgPDwgZW5kbDsKCQlyZXR1cm4gKnRoaXM7Cgl9Cn07CgppbnQgbWFpbigpIHsKCWNvdXQgPDwgIiMgQ29uc3RydWN0IE9iamVjdCB2aWEgTG9nTWUgb2JqID0gTG9nTWUoKVxuIjsKCUxvZ01lIG9iajEgPSBMb2dNZSgpOwoJY291dCA8PCAiIyBDb25zdHJ1Y3QgT2JqZWN0IHZpYSBMb2dNZSBvYmo7XG4iOwoJTG9nTWUgb2JqMjsKCglyZXR1cm4gMDsKfQ==