gpt4 book ai didi

rust - 有没有办法解决未使用的类型参数?

转载 作者:行者123 更新时间:2023-11-29 07:46:42 30 4
gpt4 key购买 nike

代码:

trait Trait<T> {}

struct Struct<U>;

impl<T, U: Trait<T>> Struct<U> {}

错误:

error[E0207]: the type parameter `T` is not constrained by the impl trait, self type, or predicates
--> src/main.rs:5:6
|
5 | impl<T, U: Trait<T>> Struct<U> {}
| ^ unconstrained type parameter

似乎RFC 447禁止这种模式;有什么办法可以解决这个问题吗?我认为可以通过将 T 更改为关联类型来解决这个问题,但这会阻止我进行多分派(dispatch)。

最佳答案

结构中未使用的类型参数可以使用 PhantomData :

struct Struct<U> {
_marker: PhantomData<U>,
}

impl<U> Struct<U> {
fn example<T>(&self)
where
U: Trait<T>,
{
// use `T` and `U`
}
}

关于rust - 有没有办法解决未使用的类型参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28123445/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com