I am currently learning C++ and SFML 2.0. And I think I must lack some C++ knowledge because in the file Time.hpp (
http://www.sfml-dev.org/documentation/2.0/Time_8hpp_source.php ) I cannot understand why the following non-member operator functions are not declared as friend functions....
SFML_SYSTEM_API Time& operator +=(Time& left, Time right);
SFML_SYSTEM_API Time& operator -=(Time& left, Time right);
SFML_SYSTEM_API Time& operator *=(Time& left, float right);
SFML_SYSTEM_API Time& operator *=(Time& left, Int64 right);
SFML_SYSTEM_API Time& operator /=(Time& left, float right);
SFML_SYSTEM_API Time& operator /=(Time& left, Int64 right);
Since they are not friend functions, how can they mutate a Time object, when the Time class does not feature any public mutator functions, and the m_microseconds data member is private?