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 );
我希望能够将两个boost :: function与相同的签名进行比较。 我应该修改什么才能使这段代码可编辑?
答案 0 :(得分:14)
你做不到。阅读boost function FAQ的第一个条目:
- 为什么我不能将boost :: function对象与operator ==或。进行比较 操作者!=?
醇>无法实现boost :: function对象之间的比较 “好”,因此不会实施。 ...
答案 1 :(得分:-1)
您是否希望比较签名或仿函数相等(两个仿函数指向相同的底层内存地址)?如果是后者,您可以使用boost/function_equal.hpp
:
template<typename F, typename G> bool function_equal(const F& f, const G& g);