我试图为接受T的Vec作为参数的函数创建一个类型别名,并且我希望为泛型类型指定边界,以便该函数的每个实例都接受相同类型的向量,而不是动态的向量。
这是我的密码:
trait MyTrait {}
struct Foo {}
impl MyTrait for Foo {}
struct Bar {}
impl MyTrait for Bar {}
type MyFn = Box<dyn Fn(Vec<T: MyTrait>)>;我得到了
错误类型类型的类型参数:预期至少为1,但发现0
我想以MyFn的实例结束,这些实例只接受Foo或Bar的向量,而不是两者都接受。
发布于 2022-01-05 13:15:08
由于@Jmb,我发现必须使用泛型而不带界限地声明类型,然后可以使用别名类型直接在结构中添加边界:
trait MyTrait {}
struct Foo {}
impl MyTrait for Foo {}
struct Bar {}
impl MyTrait for Bar {}
type MyFn<T> = Box<dyn Fn(Vec<T>)>;
struct MyStr<T: MyTrait> {
    value: MyFn<T>
}https://stackoverflow.com/questions/70590381
复制相似问题