我一直潜伏在这里,试图弄清楚 Functor 是否可以做我需要它做的事情。
我想做的是包装对类方法的调用并以某种方式捕获函数返回的值。鉴于我的 Functor 类,我需要做什么才能将我的评论变成代码:
template < typename Func >
class MySpecializedFunctor
{
Func t;
MyObject& p;
public:
MyFunctor( MyObject &obj, Func f )
{
p = obj;
t = f;
}
void runFunc( ... )
{
// Can I use an ellipsis '...' to pass values into t->xxxx() ???
// Assume the first param is always time, the others are never the same
bool b = p->t( time( NULL ), /* first value of ... */, /* second value of ... */ );
if ( !b )
{
// log error here
}
}
}
因为这是一个 Functor,所以被包装的函数可以有 n 个参数。
这可能吗?
编辑:我不能使用 C++0X。