2013-03-29 142 views
3

是否可以将函数定义作为参数传递,如果有的话,那么这个语法是什么?如果不是,那是什么原因?我想这样做:C++:在函数调用中声明函数

double arr1[10], arr2[10]; 

std::equal(arr1, &(arr1[5]), arr2, (bool(*)(double a, double b){return a == -b;}); 

回答

5

您可以使用lambda表达式为:

std::equal(arr1, arr1 + 5, arr2, [](double a, double b) { return a == -b; }); 
+1

我觉得你必须提到这是一个C++ 11功能。 – Shoe

+1

@Jueecy:我认为OP应该提及她是否想要一个老版本的语言的解决方案:-) –

+0

这很酷,谢谢,但你说得对,我应该提到我是在一个解决方案涉及C++ 11。 :) – Alex