我将不胜感激在代码中解释原因
void f(int& i)
{
i++;
}
void g(void (passed_f)(int&),int& a) //`passed_f` equivalent to `*passed_f`
{
passed_f(a);
}
int main()
{
int n=0;
g(f,n); //`f` is equivalent to `&f`
}
从不产生任何错误并给出完全相同的结果的意义上说,这两个等式都成立1
。看来,我们是否接受g
指向函数的指针或函数本身并不重要......我还认为 [c]-tag 是合适的。