我要做一个模板仿函数,可以用作:
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(); }
}
我如何以通用方式处理对象?
THX