Информация об изменениях

Сообщение Re[5]: Когда это наконец станет defined behavior? от 27.04.2023 20:01

Изменено 27.04.2023 20:02 Kernan

Re[5]: Когда это наконец станет defined behavior?
Здравствуйте, Ip Man, Вы писали:

IM>placement new инициализирует объект, в данном случае он будет default-initialized (т.к. определенного юзером конструктора очевидно нет).

IM>Никто не гарантирует, что дефолтная инициализация сохранит то, что было в памяти до этого.
Понял, надо было просто подумать получше. Если в классе A есть поле int a{0}, то при placment new этот int в 0 и уйдёт даже если конструктор дефолтный. Ну и прочее.
Почему бы просто не довести placement new до ума чтобы он не делал инициализацию? Добавить new (addr) T noconst; Придумали какие-то дикие костыли с reinterpret_cast когда всё уже было.
Re[5]: Когда это наконец станет defined behavior?
Здравствуйте, Ip Man, Вы писали:

IM>placement new инициализирует объект, в данном случае он будет default-initialized (т.к. определенного юзером конструктора очевидно нет).

IM>Никто не гарантирует, что дефолтная инициализация сохранит то, что было в памяти до этого.
Понял, надо было просто подумать получше. Если в классе A есть поле int a{0}, то при placment new этот int в 0 и уйдёт даже если конструктор дефолтный. Ну и прочее.
Почему бы просто не довести placement new до ума чтобы он не делал инициализацию? Добавить new (addr) T noctor; Придумали какие-то дикие костыли с reinterpret_cast когда всё уже было.