急boost:bind的一个初学者有关问题

急:boost::bind的一个菜鸟问题
C/C++ code

struct A
{
    char a;
};

char fun1(const char* c)
{
    //printf(c);
    std::cout<<"fun1:"<<c<<std::endl;
    return 'c';
}

bool fun2(A& a)
{
    std::cout<<"fun2:"<<a.a<<std::endl;
    return true;
}

bool fun3(bool(*pf)(A&))
{
    A a;
    a.a = 'a';
    return pf(a);
}


bind或者其它的有没有法子把fun1函数改造成fun2一样的函数签名以适配fun3的函数回调?

------解决方案--------------------
bind之后是对象
而fun3只接受 函数指针,所以不行。
要是func3参数是模板的话倒是没问题。