let children: [Option<Box<Node>>; SIZE] = unsafe { std::mem::MaybeUninit::array_assume_init([std::mem::MaybeUninit::zeroed(); SIZE]) };
И будет ли это UB? т.е. можно ли zeroed() кастить в Option<Box<T>>?
с моей точки зрения это должно работать
То что конкретно я написал - не работает, там zeroed() не Copy
А почему zeroed, а не None?
Идея, как я понимаю, в том, чтобы проинициализировать это всё за раз
let children: [Option<Box<Node>>; SIZE] = [None; SIZE]; Так? Не работает из-за того что не Copy
const NONE: Option<Box<Node>> = None; let children = [NONE; SIZE];
const EMPTY: Option<Box<Node>> = None; let children = [EMPTY; SIZE];
Обсуждают сегодня