考虑下面的std::function
实例,其中一些(不是全部)实例封装了某个类的成员函数。我想比较这些实例并识别所有实例,它们指向同一个函数以及相同的实例:
#include <functional>
typedef std::function<void(int)> myfun;
class Foo{
public:
void foo(int i){/*...*/}
myfun getFun(){
return std::bind(&Foo::foo, *this,std::placeholders::_1);
}
};
void test(){
Foo f1, f2;
myfun p1 = f1.getFun(), p2 = f2.getFun(), p3 = f2.getFun(), p4 = [](int i){};
//how do I compare p1 - p4, so that p1 != p2,p3,p4, p2 == p3, p4 != p3,p2,p1
}
你知道这是否可能(以及如何)?