【发布时间】:2014-01-11 04:09:47
【问题描述】:
void someFunction(boost::function<void()> func)
{
... //Get myObj
}
MyClass *myObj = ...;
someFunction(boost::bind(&MyClass::memberFunction, myObj));
如何从函数 void someFunction 中获取指向 myObj 的指针或引用
【问题讨论】:
-
为什么不简单地将 ref 传递给对象?
-
@billz 你的意思是在 boost::function
func 之后将它作为第二个参数传递吗?我正在尝试制作 boost::signals 类型的连接功能。 Boost 不需要通过 myObj 两次。主要是为了保持参数简短。 -
不清楚您要完成什么,但是一旦参数已绑定到函数,您就无法访问它们。
-
@EricFortin 我不是在谈论如何获取参数,我是在问如何获取用于调用成员函数的对象。 boost::bind(&MyClass::memberFunction, myObj)() 会调用 myObj->memberfunction(),如何获取 myObj 的指针或引用
-
myObj 是传递给您的成员函数的第一个参数。这就是成员函数的工作原理。
标签: c++ boost boost-bind boost-function