“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
}