union требует конструктор, зачем так сделано?
От: Sm0ke Россия ksi
Дата: 06.06.23 09:56
Оценка:
Собственно хочу создать через new массив элементов T без вызова их конструкторов, чтобы потом по требованию делать std::construct_at() только для отдельных элементов .

Если поместить этот T в union для отложенной инициализации, и у T есть конструктор по умолчанию не дефоолтный, то стандарт требует добавление в union тоже конструктора по умолчанию, даже если тот ничего не делает... Зачем так сделано?
Тобишь создам через new массив 50 элементов union и для каждого будет вызван конструктор в процессе.. Это же замедление!

Подскажите как лучше. Использовать aligned_storage нет желания, и reinterprete_cast тоже.
union
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.