' identifier ': 関数の引数があいまいであるため、型の引数を推測できません
コンパイラは、ジェネリック引数またはテンプレート引数に使用するオーバーロードされた関数を判別できません。
次の例では C2914 が生成されます。
// C2914.cpp
// compile with: /c
void f(int);
void f(double);
template<class T> void g(void (*) (T));
void h() { g(f); } // C2914
// try the following line instead
// void h() { g<int>(f); }
ジェネリックを使用する場合も C2914 が発生する場合があります。 次の例では C2914 が生成されます。
// C2914b.cpp
// compile with: /clr /c
void f(int);
void f(double);
template<class T>
void gf(void (*) (T));
void h() { gf(f);} // C2914
// try the following line instead
void h() { gf<int>(f); }