首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只用于其他泛型类型的泛型类型

只用于其他泛型类型的泛型类型
EN

Stack Overflow用户
提问于 2022-10-12 13:31:06
回答 1查看 51关注 0票数 0

我目前正在做以下工作:

代码语言:javascript
复制
pub trait MyTrait1 {}
pub trait MyTrait2<A: MyTrait1> {}
impl<A: MyTrait1, B: MyTrait2<A>> Add for B {
  ...
}

但是,我随后在impl中的A类型参数上得到了以下错误:

类型参数A不受impl特性、自类型或谓词无约束类型参数(rustc E0207)的约束。

想知道有没有办法绕过这件事吗?我需要A类型参数作为MyTrait2<_>类型的参数。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2022-10-14 15:54:42

我所知道的唯一解决办法是:

代码语言:javascript
复制
pub trait MyTrait1 {}
pub trait MyTrait2 {
    type Data: MyTrait1;
}

struct Wrapper<T>(T);
impl<A: MyTrait1, B> std::ops::Add<Wrapper<B>> for Wrapper<B>
where
    B: MyTrait2<Data = A>,
{
    type Output = Wrapper<B>;
    fn add(self, rhs: Self) -> Self::Output {
        unimplemented!()
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74042722

复制
相关文章

相似问题

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