应用于对象的C++成员函数

Any*_*orn 3 c++ methods functional-programming member

我希望通过将其作为模板参数传递来调用成员函数,而不使用boost.这是我试图做的一个例子,

class object { void method(); }

{
object object_instance;
...
apply<object:: method>();
...

template<class F>
void apply() { F(object_instance); } // want to call object_instance.F()
}
Run Code Online (Sandbox Code Playgroud)

这不起作用,所以问题是如何将对象方法绑定到对象.谢谢

上面是一个例子,而不是真正的代码.我有一堆函数只有名称不同,但有许多参数,我想在运算符中包含.

GMa*_*ckG 5

就像是:

struct foo
{
    void bar(void) {}
};

template <typename R, typename C>
R apply(C& pObject, R (C::*pFunc)())
{
    return (pObject.*pFunc)();
}

int main(void)
{
    foo f;
    apply(f, &foo::bar);
}
Run Code Online (Sandbox Code Playgroud)

这个.