我正在尝试编写一个Rust函数,将输入从一个生命周期约束转换为具有全局生命周期约束的相同类型输出(概念上类似于unsafe fn foo<'a, T1, T2>(x: T1) -> T2 where T1: 'a, T2 = T1 + 'static
),但我无法在不添加像Box
这样的间接层的情况下编写它。 有什么想法吗?
更普遍地说,我正在尝试以mem::transmute
和thread::spawn
为基础实现一个不安全的thread::scoped
。 spawn
要求其T
和F
参数具有'static
边界,但scoped
则不应该有。
mem::transmute
。 - bfopsscoped
。但是,无法使用spawn
来实现它。您可以查看源代码以了解如何在不稳定的thread::spawn
中完成此操作。 - aochagaviascoped
来实现生成。机制基本上是相同的,不是吗?当我想要潜在地不安全地使用抽象并自己承担正确性责任时,通常会使用unsafe
。以这种方式实现作用域似乎并没有根本上的错误...我错过了什么吗? - bfops