std::function相等判断
文章目录
裸std::function
对于纯粹的std::function来说,可以通过target方法获取到其函数指针,这样就可以判断两个std::function是否相同。一个简单的例子如下:
|
|
运行程序后,对应的输出如下:
其中需要注意target方法的用法,其模板参数一定得是函数指针的类型,如果类型不对,那么target将会返回nullptr。
由于target方法使用比较复杂,因此可以对其进行简单的封装,实现如下。
|
|
std::bind绑定
而对于std::bind绑定得到的函数来说,目前无法获取其函数指针,原因在于std::bind得到的类型太奇葩了。
见下面的代码。
|
|
对应的输出如下。