たとえば、ヘッダーが次の場合、フレンド機能を持つクラスがありました。
class A{
friend void foo();
public:
A(){}
};
void foo();
だから私が得られないのは、コンパイラが2番目の宣言で何をするのかということです?
私は皆、何の影響もなく、好きなだけそれらを書くことができることに気づきました。
void foo();
void foo();
...
(実装は cpp ファイルにあると仮定します)
さらに、一部の関数を友人として宣言すると、関数自体も宣言されると標準がどこで述べているかを見つけることができませんでした。