#c #stl #new-operator
Вопрос:
Когда я читаю код для tinystl, я нахожу следующий код
struct placeholder{};
void* operator new(size_t, placeholder, void *ptr)
{
return ptr;
}
Зачем ему нужен заполнитель? В чем разница между приведенным выше и приведенным ниже кодом?
void *operator new(size_t, void *ptr)
{
return ptr;
}
Комментарии:
1. Разница заключается именно в наличии
placeholder
, которое необходимо, чтобы отличить этоoperator new
от другого.
Ответ №1:
Смотрите эту страницу: https://en.cppreference.com/w/cpp/memory/new/operator_new
Это выравнивание.
Комментарии:
1. Пожалуйста, не публикуйте ответы только по ссылкам, добавьте краткое описание связанного контента.