История изменений
Исправление 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.