Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如何比较两个函数对象是否拥有相同的函数引用?
struct A { void b(){} } int main() { A a; auto f1 = std::bind(&A::b, a); auto f2 = std::bind(&A::b, a); f1 == f2 // ??? }
保证结果std::bind只能是可调用的并且具有成员类型result_type。没有符合标准的方法来比较绑定函数。
std::bind
result_type
返回值 一个未指定类型 T 的函数对象,其中 std::is_bind_expression::value == true,并且可以存储在 std::function 中。如果 f 和所有 args 都是可移动的,则该对象是可移动的,否则是可复制的。该类型定义了以下成员:
返回值
一个未指定类型 T 的函数对象,其中 std::is_bind_expression::value == true,并且可以存储在 std::function 中。如果 f 和所有 args 都是可移动的,则该对象是可移动的,否则是可复制的。该类型定义了以下成员:
来自http://en.cppreference.com/w/cpp/utility/functional/bind