为什么 pfunc(args)
和 (*pfunc)(args)
都是正确的?
它们之间有什么区别吗?
这是code snippet:
#include <stdio.h>
template<typename T>
T abs(T x)
{
return x>=0?x:-x;
}
int main()
{
double (* foo)(double x) = abs<double>;
printf("%d\n", abs<int>(-45));
printf("%lf\n", (*foo)(6.9)); //Why both pfunc(args) and (*pfunc)(args) are correct?
printf("%lf\n", foo(1.5));
}
还有一个问题,为什么编译器会抱怨 double (fun)(double x) = abs<double>;
?