#include <iostream>
using namespace std;
struct A {
char * data;
A() {
data = new char[10000];
std::cout << "A()" << std::endl;
}
~A() {
if(data != nullptr) {
delete data;
std::cout << "Deleted Data!" << std::endl;
}
std::cout << "~A() " << std::endl;
}
};
void aDo2(A && a) {
cout << "Do2" << endl;
}
void aDo(A && a) {
cout << "Do" << endl;
aDo2(A(a));
}
int main() {
{
A a;
{
aDo(move(a));
}
cout << "why" << endl;
}
cout << "here?" << endl;
// your code goes here
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IEEgewoJY2hhciAqIGRhdGE7CglBKCkgewoJCWRhdGEgPSBuZXcgY2hhclsxMDAwMF07CgkJc3RkOjpjb3V0IDw8ICJBKCkiIDw8IHN0ZDo6ZW5kbDsKCX0KCgl+QSgpIHsKCQlpZihkYXRhICE9IG51bGxwdHIpIHsKCQkJZGVsZXRlIGRhdGE7CgkJCXN0ZDo6Y291dCA8PCAiRGVsZXRlZCBEYXRhISIgPDwgc3RkOjplbmRsOwoJCX0KCQlzdGQ6OmNvdXQgPDwgIn5BKCkgIiA8PCBzdGQ6OmVuZGw7Cgl9Cn07Cgp2b2lkIGFEbzIoQSAmJiBhKSB7Cgljb3V0IDw8ICJEbzIiIDw8IGVuZGw7Cn0KCnZvaWQgYURvKEEgJiYgYSkgewoJY291dCA8PCAiRG8iIDw8IGVuZGw7CglhRG8yKEEoYSkpOwp9CgoKCmludCBtYWluKCkgewoJewoJQSBhOwoJewoJYURvKG1vdmUoYSkpOwoJfQoJCgljb3V0IDw8ICJ3aHkiIDw8IGVuZGw7Cgl9Cgljb3V0IDw8ICJoZXJlPyIgPDwgZW5kbDsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXJldHVybiAwOwp9