是否可以使用具有具体结构的具体类型调用泛型函数?
这是我想做的一个小例子:
trait T {}
trait T2 {}
struct S1 {}
struct S2 {}
impl T for S1 {}
impl T for S2 {}
fn test<V: T>(foo: &S1, bar: &S2, f: &Fn(&V)) {
f::<S1>(foo);
f(bar);
}
fn main() {
test(&S1{}, &S2{}, &|_| println!("called"));
}
我无法摆脱泛型参数V
,因为我要解决的实际问题涉及更多。此外,我无法创建包装特征,因为有时我的签名很弱,有时f
需要更多特征。