#include <iostream>
#include <algorithm>
#include <memory>
using namespace std;
struct B{
};
struct D : B{
string s;
D(string s): s(s){}
};
int main() {
vector<unique_ptr<B>> vec;
unique_ptr<D> derivedObject( new D("Ram") );
cout << derivedObject.get() << endl;
vec.push_back(make_unique<D>("Ram"));
vec.push_back(std::move(derivedObject));
cout << derivedObject.get() << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8bWVtb3J5Pgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpzdHJ1Y3QgQnsKfTsKc3RydWN0IEQgOiAgQnsKICAgIHN0cmluZyBzOwoJRChzdHJpbmcgcyk6IHMocyl7fQp9OwppbnQgbWFpbigpIHsKCXZlY3Rvcjx1bmlxdWVfcHRyPEI+PiB2ZWM7Cgl1bmlxdWVfcHRyPEQ+IGRlcml2ZWRPYmplY3QoIG5ldyBEKCJSYW0iKSApOwkKCWNvdXQgPDwgZGVyaXZlZE9iamVjdC5nZXQoKSA8PCBlbmRsOwoJdmVjLnB1c2hfYmFjayhtYWtlX3VuaXF1ZTxEPigiUmFtIikpOwoJdmVjLnB1c2hfYmFjayhzdGQ6Om1vdmUoZGVyaXZlZE9iamVjdCkpOwoJY291dCA8PCBkZXJpdmVkT2JqZWN0LmdldCgpIDw8IGVuZGw7CglyZXR1cm4gMDsKfQ==