Take the 2-minute tour ×  Why is overloaded operator= mandated
to be a member function ($13.5.3), but not a compound assignment
operator e.g. operator+= ($13.5.2)? Am I overlooking something
here?  share|improve this question  4 Answers 4  A copy
assignment operator=, as a member, is always provided by the
compiler if the user doesn't define one. I believe that it was
only for simplicity and to avoid unexpected ambiguities that it
was made a requirement that operator= can't be defined as a free
function.  Conversion operators take care of the case when you
want to assign from a user-defined type to a built-in type.
share|improve this answer So my question I guess now is why
certain operators are mandated to be overloaded as members e.g.
operator [], operator() while others are not? –  Chubsdad Nov 16
'10 at 9:34 @Chubsdad, no that's not your question, that's
another question, feel free to answer it but Charles (and
others) have answered this question. –  Motti Nov 16 '10 at 9:37
@Motti: Not sure if this happ