比较两个boost :: function

Gui*_*e07 7 c++ boost

void ff(int){} 

void Unscribe(const boost::function<void(int)>& f)
{
    std::map<int, boost::function<void(int)> > map;

    map[0] = ff;

    if( map[0] == f)
    {

    }  
}

Unscribe( ff ); 
Run Code Online (Sandbox Code Playgroud)

我希望能够将两个boost :: function与相同的签名进行比较.我应该修改什么才能使这段代码可编辑?

Arm*_*yan 14

你不能.阅读boost函数FAQ的第一个条目:

  1. 为什么我不能将boost :: function对象与operator ==或operator!=进行比较?

boost :: function对象之间的比较不能"很好"地实现,因此不会实现....

  • @ Guillaume07:其余的FAQ条目我发布了一个链接来解释这一点.我认为最好将整个条目复制粘贴到答案中 (3认同)