我必须做一个模板化的仿函数,它可以用作:
Function<int (char)> f = &printChar;
Function<int (char)> f = boost::bind(&printChar, _1);
我做了一个基于函数指针的仿函数,但它不适用于 boost::bind,因为它返回一个 boost::Function,它是一个对象而不是函数 ptr。
class Function <R()> {
public:
typedef R (*ptr_t)();
ptr_t _ptr;
Function(ptr_t p) { _ptr = p; }
R operator()() { return _ptr(); }
}
我如何以通用方式处理对象?
谢谢