クラスがあります
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