#include <iostream>
#include <memory>
#include <vector>
class a {};
class b : public a {};
std::unique_ptr<a> foo()
{
return std::make_unique<b>();
}
void take(std::unique_ptr<a> ptr)
{
std::vector<std::unique_ptr<a>> list;
list.push_back(std::move(ptr));
}
int main() {
auto value = std::make_unique<b>();
take(std::move(value));
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWVtb3J5PgojaW5jbHVkZSA8dmVjdG9yPgoKY2xhc3MgYSB7fTsKY2xhc3MgYiA6IHB1YmxpYyBhIHt9OwoKc3RkOjp1bmlxdWVfcHRyPGE+IGZvbygpCnsKCXJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPGI+KCk7Cn0KCnZvaWQgdGFrZShzdGQ6OnVuaXF1ZV9wdHI8YT4gcHRyKQp7CglzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8YT4+IGxpc3Q7CgoJbGlzdC5wdXNoX2JhY2soc3RkOjptb3ZlKHB0cikpOwp9CgppbnQgbWFpbigpIHsKCWF1dG8gdmFsdWUgPSBzdGQ6Om1ha2VfdW5pcXVlPGI+KCk7CgoJdGFrZShzdGQ6Om1vdmUodmFsdWUpKTsKCglyZXR1cm4gMDsKfQ==