Why not to make it member function to avoid friending it later?