#include <iostream>
using namespace std;
class M{
public: int database=0;
M& operator=(M&& other){
this->database=other.database;
other.database=0;
return *this;
}
M(M &&other) {
*this = std::move(other);
}
M (M& m)=default;
M ()=default;
~M() { /* free db */ }
};
class B{
public: M shouldMove;
//~B(){}
};
int main() {
B b;
B b2=std::move(b);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgTXsKICAgIHB1YmxpYzogaW50IGRhdGFiYXNlPTA7CiAgICBNJiBvcGVyYXRvcj0oTSYmIG90aGVyKXsKICAgICAgICB0aGlzLT5kYXRhYmFzZT1vdGhlci5kYXRhYmFzZTsKICAgICAgICBvdGhlci5kYXRhYmFzZT0wOwogICAgICAgIHJldHVybiAqdGhpczsKCiAgICB9CiAgICBNKE0gJiZvdGhlcikgewogICAgICAgICp0aGlzID0gc3RkOjptb3ZlKG90aGVyKTsKICAgIH0KICAgIE0gKE0mIG0pPWRlZmF1bHQ7CiAgICBNICgpPWRlZmF1bHQ7CiAgICB+TSgpIHsgLyogZnJlZSBkYiAqLyB9Cn07CgpjbGFzcyBCeyAKICAgIHB1YmxpYzogTSBzaG91bGRNb3ZlOwogICAgLy9+Qigpe30KfTsKCmludCBtYWluKCkgewogICAgQiBiOwogICAgQiBiMj1zdGQ6Om1vdmUoYik7CiAgICByZXR1cm4gMDsKfQ==