C ++通用模板函子

时间:2012-12-15 02:23:38

标签: c++ templates functor

我要做一个模板仿函数,可以用作:

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

0 个答案:

没有答案