コンパイラ エラー C3637
'function' : friend 関数の定義を関数 type の特殊化にすることはできません
テンプレートまたはジェネリックに対してフレンド関数が正しく定義されていません。
次の例では C3637 が生成されます。
// C3637.cpp
template <class T>
void f();
struct S {
friend void f<int>() {} // C3637
};
考えられる解決方法:
// C3637b.cpp
// compile with: /c
template <class T>
void f();
struct S {
friend void f() {}
};
C3637 は、ジェネリックを使用しているときも発生する場合があります。
// C3637c.cpp
// compile with: /clr
generic <class T>
void gf();
struct S {
friend void gf<int>() {} // C3637
};
考えられる解決方法:
// C3637d.cpp
// compile with: /clr /c
generic <class T>
void gf();
struct S {
friend void gf() {}
};