Jos*_*son 7 generics operator-overloading traits rust
我有一个泛型类型,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,
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
type参数
T必须用作某些本地类型的类型参数(例如MyStruct<T>); 只有当前包中定义的特征可以为类型参数实现
使用您自己的类型作为右侧操作数重载运算符的标准方法是什么?
[编辑]
显然答案是你目前无法做到这一点."重复"中的相关问题有一些答案.我等待语言的更新,以便可以重新打开这个问题,并且可以给出实际的答案.
| 归档时间: |
|
| 查看次数: |
274 次 |
| 最近记录: |