Как использовать уникальный ptr для массивов
У меня есть класс
class A {
public:
A(){cout<<"C";}
~A(){cout<<"D";}
};
int main(){
unique_ptr<A> a(new A[5]); // - doesn't work
unique_ptr<A> a(new A[1]); // - doesn't work
unique_ptr<A> a(new A); // - works
}
Почему это происходит?
Я думаю, что дело в конструкторе перемещения (он не может быть создан автоматически из-за деструктора), но зачем нам нужен конструктор перемещения здесь?
И в чем разница между:
unique_ptr<A> a(new A[1]); // - doesn't work
unique_ptr<A> a(new A); // -works