The signature of trait Add’s method add is
fn add(self, rhs: RHS) -> Self::Output;
So that for both self and rhs, if Copy trait is not impled, the behavior would be rather strange, e.g., you cannot write
if a has a type that impls Add, but not Copy.
Is that right?
If yes, would it cause unnecessary copying in operator+?