Создать новый объект C++ в определенном адресе памяти?

Я чувствую, что MSBuild и Nant довольно сопоставимы. Если бы Вы используете один из них, я обычно не переключался бы между ними, если не была востребованная функция, которая отсутствовала в продукте, который Вы выбрали.

я лично использую MSBuild для любого нового проекта, но Ваш пробег может варьироваться.

Hope, которая помогает!

Редактирование: @ChanChan - @Jon упоминает, что Nant не создает.NET 3,5 приложения. Это может быть действительно причиной или изменить, или по крайней мере использовать их параллельно. Поскольку я переместился больше к MSBuild, я - вероятно, не самый информированный человек для выделения любого другого showstoppers с любой технологией.

Редактирование: кажется, что Nant теперь создает.NET 3.5 Приложения.

37
задан Chris 12 October 2009 в 14:05
поделиться

3 ответа

Вы хотите размещение новое () . По сути, он вызывает конструктор с использованием блока существующей памяти вместо выделения новой памяти из кучи.

Изменить: убедитесь, что вы понимаете примечание об ответственности за явный вызов деструктора для объектов, созданных с использованием размещения ] new () перед его использованием!

61
ответ дан 27 November 2019 в 04:34
поделиться

Если вы хотите выделить много мелкозернистых объектов, лучшим подходом будет использование нового размещения в сочетании с некоторыми своего рода кольцевой буфер. в противном случае вам придется отслеживать указатели помимо самих указателей на объекты.

1
ответ дан 27 November 2019 в 04:34
поделиться

Да. Вам необходимо использовать вариант размещения оператора new (). Например:

void *pData = ....; // memory segment having enough space to store A object
A *pA = new (pData) A;

Обратите внимание, что при размещении new исключение не возникает.

12
ответ дан 27 November 2019 в 04:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: