При условии, что вы не читаете из неинициализированной памяти и не создаете на нее указатели, это не должно быть UB.
Вам потребуется вести тщательную бухгалтерию, чтобы запретить доступ к неинициализированным элементам и отбрасывать только инициализированные.Добавление нового элемента, где есть неинициализированная память, необходимо выполнить с помощью ptr::write()
, чтобы избежать недопустимого падения основной памяти.Но если вы перезаписываете существующее допустимое значение, тогда вы должны не использовать ptr::write
, потому что вам нужно, чтобы это значение было правильно отброшено.