уничтожаться вектор, он снова вызовет деструктор у этих объектов второй раз. Это видимо UB. Как избежать повторного вызова деструктора?
Очевидно не дергать руками
А зачем такая логика нужна? Есть std::optional, умные указатели... Их достаточно для того, чтобы осуществить подобное поведение
Написать свой вектор, ну или в данном случае скорее буфер
Попробуй сделать прокси объект, который хранит объект нужного типа сделай перегрузку операторов -> и *, можешь еще оператор риведения к T& и const T&, метод reset для вызова деструктора ну и может хранить флаг был ли удален объект(если нужно в деструкторе удалять, то что не удалил)
Обсуждают сегодня