我在这里读到了 boost:bind 的工作原理,尤其是它——除了其他东西——会产生这样的东西:
struct unspecified_type
{
... some members ...
return_type operator()(int i) const { return instance->*&klass::member(0, i);
}
现在,我正在寻找允许向实例指针添加额外间接的东西,以便它最终看起来像这样:
struct unspecified_type
{
... some members ...
return_type operator()(int i) const { return (*p_instance)->*&klass::member(0, i);
}
并且可以像这样使用
MyClass* pmc;
auto mfp = boost::bind(&MyClass::some_func, &pmc);
pmc = new MyClass();
mfp();
pmc = new MyClass();
mfp();