C++ 通过引用调用函数(?)

C++ 通过引用调用函数(?),c++,function-pointers,C++,Function Pointers,我有以下函数调用(myFunc()是double类型): 我想得到一些东西,当我调用value时,它应该调用F1->F2->myFunc() 在论坛的帮助下,我得到了帮助和理解,而不是通过变量调用函数,我应该这样做: typedef double(*)() m; m variable = myFunc; typedef double(*)() m; m variable = &F2::myFunc; <- doesn't work :( 并像变量()一样调用它 不幸的是,上面的

我有以下函数调用(myFunc()是double类型):

我想得到一些东西,当我调用value时,它应该调用F1->F2->myFunc()

在论坛的帮助下,我得到了帮助和理解,而不是通过变量调用函数,我应该这样做:

typedef double(*)() m;
m variable = myFunc;
typedef double(*)() m;
m variable = &F2::myFunc; <- doesn't work :(
并像变量()一样调用它

不幸的是,上面的设置并没有真正起作用, 我获得了对&F2::myFunc的引用,但在上述设置中如何获得它

比如:

typedef double(*)() m;
m variable = myFunc;
typedef double(*)() m;
m variable = &F2::myFunc; <- doesn't work :(
typedef-double(*)m;
m变量=&F2::myFunc 您可以使用和执行以下操作:

std::function variable=std::bind(&ClassOfF2::myFunc,F1->F2);
双值=变量();
我想得到一些东西,当我调用value时,它应该调用F1->F2->myFunc()

在C++11中,可以使用lambda:

auto l = [&] () { return F1->F2->myFunc(); };
double value = l();

他即将出版的《有效C++ 11》也提到:

喜欢lambdas而不是std::bind


查找成员函数指针、
std::bind
std::function
和Lambdas-了解了这些,您将知道该做什么以及代码“不工作”的原因如果可以使用Lambdas,为什么要使用bind?