【发布时间】:2021-11-16 18:55:15
【问题描述】:
我试图要求一个泛型类型可以通过 const ref 索引到另一个泛型:
struct A<T, I> where T: Index<&I> {
t: T,
some_more_uses_of_I...
}
它不编译要求我为 &I 提供生命周期。当我将其更改为 &'_ I 时,编译器会抱怨“'_ 不能在此处使用”和“'_ 是保留的生命周期名称”。我怎样才能让它工作?据我了解,生命周期并没有真正的需要,引用必须仅在执行 [] 期间才有效,我相信我不应该将其绑定到任何其他对象。
【问题讨论】:
-
很难说没有更完整的示例,但是如果将
where子句移至impl块,您可能会得到您想要的。这样:impl<'a, T, I> A<T, I> where T: Index<&'a I>的生命周期不链接到结构A本身。
标签: generics rust reference lifetime