#include <iostream>
#include <memory>
#include <vector>
struct TEST
{
std::unique_ptr<int> m_l;
TEST(
std::unique_ptr<int>&& l)
{
m_l = std::move(l);
};
};
void Bar()
{
std::vector<TEST> vec;
std::unique_ptr<int> a(new int);
//Compiles fine without a Move Constructor
TEST(std::move(a));
//Requires a Move Contructor to compile
vec.push_back(
TEST(std::move(a)));
}
int main()
{
Bar();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWVtb3J5PgojaW5jbHVkZSA8dmVjdG9yPgpzdHJ1Y3QgVEVTVAp7CglzdGQ6OnVuaXF1ZV9wdHI8aW50PiBtX2w7CglURVNUKAoJCXN0ZDo6dW5pcXVlX3B0cjxpbnQ+JiYgbCkKCXsKCQltX2wgPSBzdGQ6Om1vdmUobCk7Cgl9OwoKfTsKdm9pZCBCYXIoKQp7CglzdGQ6OnZlY3RvcjxURVNUPiB2ZWM7CglzdGQ6OnVuaXF1ZV9wdHI8aW50PiBhKG5ldyBpbnQpOwoJLy9Db21waWxlcyBmaW5lIHdpdGhvdXQgYSBNb3ZlIENvbnN0cnVjdG9yCglURVNUKHN0ZDo6bW92ZShhKSk7CgkvL1JlcXVpcmVzIGEgTW92ZSBDb250cnVjdG9yIHRvIGNvbXBpbGUKCXZlYy5wdXNoX2JhY2soCgkJVEVTVChzdGQ6Om1vdmUoYSkpKTsKfQppbnQgbWFpbigpCnsJCQoJQmFyKCk7CglyZXR1cm4gMDsKfQ==