Я создавал временный стек объектов - в основном для использования структур STL на основе кучи, которые на самом деле имеют только временные времена жизни, но также и для любого другого временного динамического распределения. Один стек выполняет все типы хранения в развернутом связанном списке.
Я пришел кроппером с выравниванием. Я могу получить выравнивание с std::alignment_of<T>
, но это не очень хорошо, потому что мне нужно выравнивание типа next , который я хочу выделить. Прямо сейчас я просто произвел произвольный размер каждого объекта, кратный 16, что, насколько я знаю, является максимальным выравниванием для любого типа x86 или x64. Но теперь у меня есть два указателя накладных расходов памяти на объект, а также стоимость их размещения в моем векторе, плюс стоимость округления каждого размера до значения, кратного 16.
С положительной стороны, строительство и разрушение быстрое и надежное.
Как это сравнить с обычным оператором new / delete? И какие тестовые наборы я могу запустить? Я очень доволен своим текущим прогрессом и не хочу узнавать позже, что он ошибочен каким-то неприятным тонким способом, поэтому любые советы по тестированию операций были бы хорошими.