What's the difference between these four Add methods (matrix operator overloading) ?Do they all return Matrix?
1.impl<'a, T: ops::Add<Output = T> + Copy> ops::Add for &'a Matrix
type Output = Matrix;
- impl<'a, T: ops::Add<Output = T> + Copy> ops::Add<Matrix> for &'a Matrix
type Output = Matrix;
3.impl<T: ops::Add<Output = T> + Copy> ops::Add for Matrix
type Output = Self;
4.impl<'a, T: ops::Add<Output = T> + Copy> ops::Add<&'a Self> for Matrix
type Output = Self;