Where would you use a friend function vs. a static member function?
Section 11.5 “The C++ Programming Language” by Bjarne Stroustrup states that ordinary member functions get 3 things: access to internals of class are in the scope of the class must be invoked on an instance friends get only 1. static functions get 1 and 2.