Мой код показан ниже.Как инициализировать элемент класса `std :: vector` объекта` std :: unique_ptr` в списке инициализатора конструктора?
#include <memory>
#include <stdint.h>
class APodClass
{
public:
int x, y, z;
};
class MyClass
{
public:
MyClass(uintmax_t Width, uintmax_t Height)
: WIDTH (Width),
HEIGTH (Height),
Field (WIDTH * HEIGTH, nullptr)
{
}
private:
const uintmax_t WIDTH;
const uintmax_t HEIGTH;
std::vector<std::unique_ptr<APodClass>> Field;
};
int wmain(int argc, wchar_t * argv[])
{
MyClass MyObject(1000, 500);
return 0;
}
Когда я пытаюсь скомпилировать его, я получаю следующее сообщение об ошибке.
Error C2280
'std::unique_ptr<APodClass,std::default_delete<_Ty>>::unique_ptr(const std::unique_ptr<_Ty,std::default_delete<_Ty>> &)': attempting to reference a deleted function
...\visual studio\vc\include\xmemory0 655
Что я здесь делаю неправильно. Как исправить этот код?