В C ++ есть 4 оператора, которые могут быть перегружены, но не могут быть перегружены как автономные функции (не являющиеся членами, автономные). Это следующие операторы:
operator =
operator ()
operator ->
operator []
Этот поток прекрасно объясняет обоснование запрета operator =
быть функцией, не являющейся членом. Есть идеи по поводу трех других?