gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 07:57:47 25 4
gpt4 key购买 nike

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

#[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,因为仅仅复制指针会违反单一所有权原则。

您想在这里使用 Clone 及其克隆方法。

关于rust - 为什么包含 Box 的枚举不可复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30666707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com