title: What makes Scala's operator overloading "good", but C++'s "bad"?
body: <p>Operator overloading in C++ is considered by many to be A Bad Thing(tm), and a mistake not to be repeated in newer languages. Certainly, it was one feature specifically dropped when designing Java.</p>
  
  <p>Now that I've started reading up on Scala, I find that it has what looks very much like operator overloading (although technically it doesn't have operator overloading because it doesn't have operators, only functions). However, it wouldn't seem to be qualitatively different to the operator overloading in C++, where as I recall operators are defined as special functions.</p>
  
  <p>So my question is what makes the idea of defining "+" in Scala a better idea than it was in C++?</p>