amigo E método embutido, qual é o objetivo?

Vejo em um cabeçalho que não me escrevi o seguinte:

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

Não consigo entender por que esse método é declarado amigo. Eu pensei que faria sentido se a função for definida em outro local e precisar acessar o membro interno da classe, mas este não é o caso aqui, pois está em linha e nem precisa ter acesso aos membros.

O que você acha? O "amigo" é inútil?

questionAnswers(3)

yourAnswerToTheQuestion