Select Answer
It is a mistake -- should be const reference
By value is faster because it avoids reference indirection
Taking by value invokes the copy constructor, creating a local copy; swapping with this copy is exception-safe and automatically handles self-assignment
The compiler requires by-value for operator=