LINUX.ORG.RU

История изменений

Исправление Kroz, (текущая версия) :

Удалить copy конструктор и copy assignment operator.

Примерно так:

struct Data {
   char *allocatedData = nullptr;

   Data(Data &&o) : allocatedData(std::exchange(o.allocatedData, nullptr) {}

   Data(const Data &o) = delete
   Data(Data &o) = delete


   Data &operator=(Data &&o) { swap(allocatedData, o.allocatedData); }

   Data &operator=(const Data &o) = delete; 
   Data &operator=(Data &o) = delete;
};

Исправление Kroz, :

Удалить copy конструктор и copy assignment operator.

Вот принцип:

struct Data {
   char *allocatedData = nullptr;

   Data(Data &&o) : allocatedData(std::exchange(o.allocatedData, nullptr) {}

   Data(const Data &o) = delete
   Data(Data &o) = delete


   Data &operator=(Data &&o) { swap(allocatedData, o.allocatedData); }

   Data &operator=(const Data &o) = delete; 
   Data &operator=(Data &o) = delete;
};

Исходная версия Kroz, :

Удалить copy конструктор и copy assignment operator.