【发布时间】:2013-08-14 20:37:57
【问题描述】:
是否有可能使用 C++ 11 或 Boost 创建一个存储对象指针(实例)、方法指针和一些参数的对象,并且以后可以使用这些参数调用此方法?我的意思是 - 如何仅使用 std 或 Boost 模板来做到这一点?我很确定这是可能的,但不知道最好的方法是什么。
真正的问题是:是否可以在同一个容器中存储多个引用不同方法(具有不同签名)的此类对象?
【问题讨论】:
-
Is it possible, with C++ 11 or Boost, to create an object that ...是的。std::bind,boost::bind. -
Is it in any way possible to store several such objects that refer to different methods (with diferent signatures) in the same container不,不是真的。你为什么要这样做? -
@LightnessRacesinOrbit:在我的具体情况下,它将允许非常方便的线程间调用机制。在工作线程中创建调用,在 UI 线程中调用,无需关心签名。
-
哦,如果你预先绑定了所有参数,那很好。因为生成的仿函数将有 zero 参数和 void 返回类型;被调用的 actual 函数是否有参数并不重要,因为您已经绑定了它们。是的,这是一种常见的方法。
-
@LightnessRacesinOrbit:太好了,这就是我缺少的部分!谢谢。