#include <iostream>
#include <memory>
#include <vector>
using namespace std;
class A
{
public:
A() = default;
};
class B
{
public:
void AddAs(vector<unique_ptr<A>>&& vv)
{
vec.insert(vec.end(),
std::make_move_iterator(vv.begin()),
std::make_move_iterator(vv.end())
);
}
vector<unique_ptr<A>> vec;
};
int main() {
vector<unique_ptr<A>> v;
for(int i=0; i<10; ++i)
{
v.push_back(make_unique<A>());
}
B b;
b.AddAs(std::move(v));
return 0;
}
CSNpbmNsdWRlIDxpb3N0cmVhbT4KCSNpbmNsdWRlIDxtZW1vcnk+CgkjaW5jbHVkZSA8dmVjdG9yPgoJdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCQoJY2xhc3MgQQoJewoJcHVibGljOgoJCUEoKSA9IGRlZmF1bHQ7Cgl9OwoJCgkKCWNsYXNzIEIKCXsKCQkKCQlwdWJsaWM6CgkJCgkJdm9pZCBBZGRBcyh2ZWN0b3I8dW5pcXVlX3B0cjxBPj4mJiB2dikKCQl7CgkKCQkJdmVjLmluc2VydCh2ZWMuZW5kKCksCgkJCSAgICBzdGQ6Om1ha2VfbW92ZV9pdGVyYXRvcih2di5iZWdpbigpKSwKCQkJICAgIHN0ZDo6bWFrZV9tb3ZlX2l0ZXJhdG9yKHZ2LmVuZCgpKQoJCQkpOwoJCX0KCQkKCQl2ZWN0b3I8dW5pcXVlX3B0cjxBPj4gdmVjOwoJfTsKCQoJCglpbnQgbWFpbigpIHsKCQoJCQl2ZWN0b3I8dW5pcXVlX3B0cjxBPj4gdjsKCQlmb3IoaW50IGk9MDsgaTwxMDsgKytpKQoJCXsKCQkJdi5wdXNoX2JhY2sobWFrZV91bmlxdWU8QT4oKSk7CgkJfQoJCUIgYjsKCQliLkFkZEFzKHN0ZDo6bW92ZSh2KSk7CgkJCgkJcmV0dXJuIDA7Cgl9