amigo Y método en línea, ¿cuál es el punto?

Veo en un encabezado que no escribí lo siguiente:

class MonitorObjectString: public MonitorObject {
   // some other declarations
   friend inline bool operator==(MonitorObjectString& lhs, MonitorObjectString& rhs) { return(lhs.fVal==rhs.fVal); }

No puedo entender por qué este método se declara como amigo. Pensé que tendría sentido si la función se define en otro lugar y necesita acceder al miembro interno de la clase, pero este no es el caso aquí, ya que está en línea y ni siquiera necesita tener acceso a los miembros.

¿Qué piensas? ¿Es inútil el "amigo"?

Respuestas a la pregunta(3)

Su respuesta a la pregunta