> addresses are kinda considered observable, and not doing these copies could thus be observable and potentially break some weird code
This is certainly the case in c++: distinct objects have distinct addresses, so to remove a copy the compiler has to prove that the aliasing is not observable which is hard.
This is certainly the case in c++: distinct objects have distinct addresses, so to remove a copy the compiler has to prove that the aliasing is not observable which is hard.
But does rust have the same guarantee?