我想调用一个函数g
(来自第 3 方库),该函数将指向函数的指针作为输入f
。这个函数指针f
本身就带有一些参数。
由于我的函数f
依赖于数据并且我不能将此数据作为参数传递(引用)给函数f
,因为我需要f
使用函数指针中使用的签名来实现,所以我想做以下两件事之一:
- 实现
f
为类的(非静态)成员函数 - 实现一个辅助函数
fHelper
,该函数接受附加参数,然后构造一个函数指针(但不是函数对象),该函数指针具有使用的函数指针的签名,并使用绑定到特定值的附加参数进行g
调用。fHelper
从设计的角度来看,第三种既不是线程安全的也不是可接受的解决方案是使用全局变量。
我已经看过boost:bind
但std::mem_fun
不明白这些概念在这种情况下是否有效。我非常感谢一个有启发性的答案,可能还有一些关于通常如何处理这种情况的背景知识。