共用方式為


編譯器錯誤 C2896

'function1' : 無法使用函式範本 'function2' 作為自變數

函式範本不能是另一個函式範本的自變數。

在 Visual Studio 2022 和更新版本中,此錯誤已經過時。

下列範例會產生 C2896:

// C2896.cpp
template<class T1, class T2> void f1(void(*)(T1, T2));
template<class T1, class T2> void f2(T1, T2);

int main() {
   f1(f2);   // C2896
}

當您使用泛型時,也會發生 C2896:

// C2896b.cpp
// compile with: /clr
generic<class T1> void gf1(T1){}
generic<class T1> void gf2(T1){}

int main() {
   gf1(gf2);   // C2896
   gf1(1);   // OK
}