首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法推断生命周期的适当生命周期

无法推断生命周期的适当生命周期
EN

Stack Overflow用户
提问于 2021-07-05 04:34:07
回答 2查看 44关注 0票数 0

我有这样一件事:

代码语言:javascript
复制
type G2d<'a> = GfxGraphics<'a, Resources, CommandBuffer>;

如何将其作为字段包含到结构中?

代码语言:javascript
复制
pub struct Dc
{
  g : G2d,
  c : Context,
}

但它提供了:

代码语言:javascript
复制
expected named lifetime parameter

我试过了:

代码语言:javascript
复制
pub struct Dc
{
  g : &'a mut G2d<'a>,
  c : Context,
}

window.draw_2d( &event, | c, g, device |
{
  let mut dc = Dc { c, g };
});

但它提供了:

如果有任何帮助,我将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-05 19:27:22

正确的解决方案是

代码语言:javascript
复制
pub struct Dc<'a, 'b>
{
  g : &'a mut G2d<'b>,
  c : Context,
}

这在逻辑上是不恰当的,让外部&mut borrow与G2d< 'a > was内部的引用同时创建。所以在表达式&'a mut G2d<'a>这两个生命周期中,这两个生命周期不可能意味着它们借用了相同的东西。正确的解决方案是使用多个生命周期。

票数 0
EN

Stack Overflow用户

发布于 2021-07-05 04:48:31

整个结构应该由生命周期来注解:

代码语言:javascript
复制
pub struct Dc<'a>
{
  g : G2d<'a>,
  c : Context,
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68248611

复制
相关文章

相似问题

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