我有一个泛型类型Vec2<T>
,我想为此实现以下操作:
Vec2<T> = T * Vec2<T>
我试过这个:
impl<T: Copy + Mul<Output = T>> Mul<Vec2<T>> for T {
type Output = Vec2<T>;
fn mul(self, rhs: Vec2<T>) -> Vec2<T> {
Vec2 {
x: self * rhs.x,
y: self * rhs.y,
}
}
}
但是我收到了这个错误:
类型参数
实现T
必须用作某些本地的类型参数 类型(例如MyStruct<T>
);只有当前包中定义的特征 可以为类型参数
使用您自己的类型作为右侧操作数重载运算符的标准方法是什么?
[编辑]
显然答案是你目前无法做到这一点。在&#34;重复&#34;中有相关问题的一些答案。我等待语言的更新,以便重新打开这个问题,并且可以给出实际答案。