#include <iostream>
#include <memory>

std::unique_ptr<std::string> func () 
{
	std::unique_ptr<std::string> ptr(new std::string("hey"));
	return ptr;
}

std::unique_ptr<std::string> func2(std::unique_ptr<std::string> ptr)
{
	return ptr;
}

int main() 
{
	auto name = func();
	std::cout<<*name<<std::endl;
	std::cout<<"Name ptr: "<<name.get()<<std::endl;
	
	auto name2 = func2(std::move(name));
	std::cout<<*name2<<std::endl;
	
	std::cout<<"Name ptr: "<<name.get()<<std::endl;
	std::cout<<"Name2 ptr: "<<name2.get()<<std::endl;
	return 0;
}