首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Box<dyn Trait>转换为Rc<dyn Trait>?

如何将Box<dyn Trait>转换为Rc<dyn Trait>?
EN

Stack Overflow用户
提问于 2021-02-28 04:52:58
回答 1查看 138关注 0票数 1

我有一个接收Box的函数,需要将其转换为Rc以共享线程内的只读所有权。

使用一些T: SizedBox,我们可以做Rc::new(*my_box),但不幸的是,这不适用于大小不大的特征对象。

这里有一个过于简单的例子,希望能澄清这个问题:

游乐场链接

我在这里和那里看到了一些关于公开内部RcBox以支持在BoxRc之间移动的东西,但是AFAIK它现在不能使用。

有没有解决这个问题的办法?

或者,如果这种类型的转换是不可能的,那么存储特征对象的推荐方法是什么,该特征对象可以变异到某个点,然后在该点之后与程序的其余部分不变地共享?

当我知道到目前为止我只有一个所有者时,使用Rc>似乎有点过头了……

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-28 05:38:14

Rc实现了impl From>,因此您可以只使用into

到操场的永久链接

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66403357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档