关于 `T: Send` 不需要用于 `Guard::defer_destroy` 的文档示例不适用于该函数
作者: Kritzefitz创建于 2026年5月5日更新于 2026年5月5日
在 Guard::defer_destroy 的文档中有如下一段内容:
我们故意没有要求
T: Send,因为 Rust 的类型系统通常无法证明T: Send,适用于典型的使用场景。例如,考虑以下代码片段,它展示了延迟释放共享引用的典型使用场景:let shared = Owned::new(7i32).into_shared(guard); guard.defer_destroy(shared); // `Shared` 不是 `Send`!
看起来这个示例是从 Guard::defer_unchecked 中复制过来的,但我不清楚示例与 defer_destroy 是否需要 T: Send 有关。请注意,给出的示例即使 defer_destroy 需要 T: Send,也会正确编译和运行,因为 i32 是 Send,并且通常情况下,T: Send 并不依赖于 Shared<'_, T>: Send。
内容来源: crossbeam-rs/crossbeam