繁体   English   中英

生命周期子类型和泛型:“生命周期参数不允许”错误

[英]Lifetime subtyping and generics: “lifetime parameter not allowed” error

我试图遵循本书 (和编译器) 中所述策略 ,但是遇到以下错误:

lifetime parameters are not allowed on this type: lifetime parameter not allowed

这是代码片段:

struct FooRef<'a, F: 'a>(&'a F);

struct Bar<'a, 'f: 'a, F: Foo<'f>> {
    filter: &'a FooRef<'f, F<'f>>,
}

F是类型变量,而不是类型,因此不能拥有自己的类型或生存期参数。 如果您需要将类型变量限制为仅包含受生存期限制的引用,则可以将生存期用作绑定:

struct Bar<'a, 'f: 'a, F: Foo<'f> + 'f> {
    filter: &'a FooRef<'f, F>,
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM