if (this == &container) {
return *this;
}
m_name = container.m_name;
m_elements = container.m_elements;
return *this;
}
Будет ли virtual Container& operator=(const Container& container) = default; создавать ровно то же самое? Учитывая, что m_elements - shared_ptr
virtual для чего?
Класс абстрактный
Для чего у тебя виртуальный копи оператор..
Да, убрать надо. Не суть. Будет ли то же самое?
Ну не уверен, что проверка вообще нужна тут, но сгенерит без нее
Нужна. А если будет Container container(...); container = container;
Ну тоже самое. У тебя же там логики никакой нет кроме присваивания мемберов
Это вообще небезопасно, если есть указатели, которые мемберы класса
Так у тебя там шрд_птр
Это да. Но лучше перебздеть, чем недобздеть
Лучше просто =default юзать, если ничего кроме присваивания мемебров не происходит
Так же и для copy и move ctor?
Спасибо
А make_shared тоже будет нормально происходить в copy и move ctor?
Обсуждают сегодня