为什么包含 Box 的枚举不可复制?

Why is an enum containing a Box not copyable?

框和数组是可复制的,那么为什么不能编译?

#[derive(Debug, Copy, Clone)]
enum Octree{
    Branch(Box<[Octree; 8]>),
    Filled,
    Empty,
}

编译错误:

main.rs:3:17: 3:21 error: the trait `Copy` may not be implemented for this type; variant `Branch` does not implement `Copy` [E0205]

编辑: 好的,所以我不希望 Octree 是可复制的。但是我怎样才能让它可变呢?我希望能够更改节点的子节点。

复制仅适用于可简单复制的类型。 Box 不是 Copy 因为仅仅复制指针会违反单一所有权原则。

您想在此处使用克隆及其克隆方法。