Здравствуйте, s.d.s, Вы писали:
SDS>1. Какие возможные цели преследует декларация operator new(size_t, void*), operator delete(void*, size_t) в классе Obj
Залоггировать создание-удаление в куче, наверное.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re: Для чего нужна декларация operator new/delete в private секции класса?
SDS>1. Какие возможные цели преследует декларация operator new(size_t, void*), operator delete(void*, size_t) в классе Obj
я бы разделил это вопрос на две части:
какой эффект от этой декларации? — экземпляры класса можно создавать только на куче или на стеке, а задействовать placement new не получится, чем отсекается всякое баловство навроде явного вызова деструктора с последующим созданием нового объекта на месте старого, а заодно становится невозможным использовать для хранения класса контейнеры, использующие placement new для создания объектов в собственноручно выделенной памяти.
зачем добавлять такие ограничения? — хз, это надо у автора кода спрашивать
В стандарте вроде по поводу этих операторов ничего не менялось, но это надо смотреть. Если уж хочется что-то запрещать, то наверное лучше пометить как = delete.
еще стоит отметить, что автор забил на перегрузку new[] и delete[]
Говорить дальше не было нужды. Как и все космонавты, капитан Нортон не испытывал особого доверия к явлениям, внешне слишком заманчивым.
Re: Для чего нужна декларация operator new/delete в private секции класса?
Здравствуйте, s.d.s, Вы писали:
SDS>Здравствуйте, VTT, Вы писали:
VTT>>Может у вас какие дебаг оверлеи стоят или хитрые умные указатели? VTT>>А find all references ничего не находит?
SDS>Насколько я понял из Breaking Changes in Visual C++ 2015,
SDS>
void operator delete(void*, std::size_t);
SDS>объявленный внутри класса теперь перекрывает глобальный. И теперь MS рекомендует свой тип использовать в переопределении этого оператора.
Как я понял, теперь
void operator delete(void*, std::size_t);
это обычный delete, а не placement delete
вот это поворот...
Говорить дальше не было нужды. Как и все космонавты, капитан Нортон не испытывал особого доверия к явлениям, внешне слишком заманчивым.