Результаты поиска по запросу "placement-new"

2 ответа

Перезапись объекта объектом того же типа

Хорошо ли определено следующее?

6 ответов

Что такое конструктор на месте в C ++? [Дубликат]

Возможный дубликат:C ++ - «новое размещение»Что такое конструктор на месте в C ++?например Тип данных * x = new (y) Тип данных ();

4 ответа

Как новое размещение узнает, какой макет создать?

ТОП публикаций

2 ответа

размещение нового + массив + выравнивание

2 ответа

О, неважно, я понимаю, что ты говоришь. Создайте объект, прежде чем вызывать деструктор оригинала, а затем двигайтесь от него.

ю, что явный вызов деструктора может привести к неопределенному поведению из-за двойного вызова деструктора, как здесь:

4 ответа

 5.3.5, а не 3.7.4.

рен, что этот код должен быть незаконным, так как он явно не будет работать, но, похоже, это разрешено C ++ 0x FCD.

5 ответов

stackoverflow.com/questions/364483/...

тся ли следующий законный C ++ с четко определенным поведением? class my_class { ... }; int main() { char storage[sizeof(my_class)]; new ((void *)storage) my_class(); }Или это проблематично из-за соображений приведения / выравнивания указателя?

2 ответа

) и обратно к исходному типу возвращает исходное значение указателя. - конец примечания]

ли (семантическая) разница между возвращаемым значением размещения new и приведенным значением его операнда? struct Foo { ... }; char buffer[...]; Foo *a = new(buffer) Foo; Foo *b = reinterpret_cast<Foo *>(buffer);Есть лиa а такжеb чем-то ...

2 ответа

, Почему они требуются в интерфейсе ускользает от меня

мог найти точный ответ на этот вопрос и, следовательно, размещать здесь. Когда я думаю о векторе, он должен строить объекты в смежной области памяти. Это означает, что вектор сохраняет выделенную память и должен выполнить конструкцию на месте (= ...

1 ответ

 представляют начало того же хранилища. И я не понимаю, почему, если хранение подобъекта связано с хранением содержащего объекта, хранение объекта не связано с хранением его подобъекта.

ительно этого кода: #include <string> int main() { union u { u() { i = 0; } ~u() {} int i; std::string s1; std::string s2; } u; new (&u) std::string{}; }[Intro.object] / 2 [https://timsong-cpp.github.io/cppwp/n4659/intro.object#2]Говорит, ...