Re[2]: Placement new для инициализации примитивного типа в самодельном union?
От: so5team https://stiffstream.com
Дата: 06.10.25 16:48
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Это как std::optional только без маркировки если есть значение или нет?

_NN>Типа https://github.com/akrzemi1/markable ?

Скорее как std::variant но без хранения значения index, т.к. что за тип лежит внутри variant-а по косвенным признакам снаружи знает объект, который этим variant-ом и владеет. Собственно, владелец отвечает и за корректное удаление, и за корректное копирование/перемещение.

_NN>Кстати memcpy не всегда можно использовать если у нас тип не тривиально копируемый.


Угу.

_NN>А placement new не сработает если нет конструктора копирования.

_NN>В общем, для общего случая там работы хватить

К счастью, общего случая и не нужно. Так что наличие конструкторов для нетривиальных типов можно жестко потребовать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.