#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;
}