如何比较两个函数对象是否包含相同的函数引用?
struct A {
void b(){}
}
int main() {
A a;
auto f1 = std::bind(&A::b, a);
auto f2 = std::bind(&A::b, a);
f1 == f2 // ???
}
答案 0 :(得分:1)
std::bind
的结果仅保证可调用并具有成员类型result_type
。没有符合标准的方法来比较绑定函数。
返回值
未指定类型T的函数对象,为此 std :: is_bind_expression :: value == true,可以存储 的std ::功能。如果f和所有args都是可移动的,则该对象是可移动的, 并且可以复制。该类型定义了以下成员: