c++ 函数指针

来源:百度知道 编辑:UC知道 时间:2024/05/30 13:17:03
一个函数需要函数指针参数 int f(int (*)(int ));
定义函数模板
template<int n>
int compare(int a)
{
if(a<n) return -1;
else if(n<a) return 1;
else return 0;
}

那么这样的函数调用 f(compare<3>) 在vc++中是错误的
为什么? 如何解决?
vc++ 6.0编译报错

那应该是VC6在这一块不符合标准了.
使用VC6,对这一点需要先有心理准备,呵呵.

------------------------------------
如果你定义了这个函数 - int f(int (*)(int )),vc++报告错误的话,那么是vc++的问题,而不是代码的问题。

要解决,提供以下信息:
1. 是否正确提供了int f(int (*)(int ))的函数实体;
2. vc++的版本

f(compare(3))圆括号??