模板参数是function时,如何以传参列表不同的function做模板实参?

std::function<void(const tstring&)> m_funShowMessage = nullptr;
std::function<void(const USHORT*, USHORT&)> m_funShowCurve = nullptr;

template <typename F>
void RegisterCallBack(int id, F func)
{
    switch (id)
    {
    case CB_SHOWMESSAGE:
        m_funShowMessage = func;            
        break;

    case CB_SHOWCURVE:
        m_funShowCurve = func;
        break;

    default:
        break;
    }
}
// 调用
RegisterCallBack(CB_SHOWMESSAGE, std::bind(&BRControlForm::ShowMessage, this, std::placeholders::_1));
RegisterCallBack(CB_SHOWCURVE, std::bind(&BRControlForm::ShowCurve, this, std::placeholders::_1, std::placeholders::_2));

代码编译报错:
尝试匹配参数列表“(std::function<void (const std::wstring &)>, F)”时

with
[
    F=std::_Binder<std::_Unforced,void (__thiscall BRControlForm::* )(const USHORT *,USHORT &),BRControlForm *,const std::_Ph<1> &,const std::_Ph<2> &>
]

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


​因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。