12/11/16 22:12:13.09 bHfLv1nY
あれ、できるようになってる・・・?
前はva[1] = std::move(b);で怒られてた気がしたんだけど
#include <memory>
#include <vector>
struct A {
int val;
A(int i):val(i){}
};
struct B : public A {
B(int i):A(i){}
};
int main()
{
std::vector<std::unique_ptr<A>> va(2);
std::unique_ptr<A> a(new A(1));
std::unique_ptr<B> b(new B(2));
va[0] = std::move(a);
va[1] = std::move(b);
for(auto& i : va) {
printf("%d\n", i->val);
}
}