我有以下结构:
#[derive(Clone)]
pub struct MyStruct {
function : Box<dyn Fn(Box<dyn Any>) -> Box<dyn Any> + Send + Sync>,
[...]
}
克隆推导失败,因为盒子不是 Clone
但我没有办法制作 Fn Clone
,有没有办法解决这个问题?我需要克隆的原因是我有时会传递 &[MyStruct]
并且需要使用 .to_vec()
...
答案 0 :(得分:2)
简单的答案:将 Box
(单一所有者指针)切换为 Rc
或 Arc
(可共享指针)