c++11:如何判断std::function对象相同?_如何判断两个stdfunction是否相等-程序员宅基地

技术标签: equal  c++11  c/c++/c++11  function  

我们知道std::function的实质就是个函数指针,但在c++11中std::function并没有实现操作符==(要到C++20才实现),所以我们无法使用==操作符来判断两个std::function对象是否相等,虽然我们明明知道它就是个指针。

但我还是要判断啊,怎么办?
仔细研究了std::function的定义,找到了这个 target()函数,c++11标准的官方定义就是返回函数指针,既然它返回了函数指针,自然就可以用==来比较地址是否相等了

std::function<void(const std::string &)> f1;
std::function<void(const std::string &)> f2;
bool eq = *(f1.target<void(*)(const std::string &)>()) == *(f2.target<void(*)(const std::string &)>())

target函数说明:
https://en.cppreference.com/w/cpp/utility/functional/function/target

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/10km/article/details/105348271

智能推荐

一种简单的封装VP8/VP9视频的容器:IVF格式_ivf vp8-程序员宅基地

文章浏览阅读7.3k次,点赞4次,收藏5次。IVF是一个非常简单的视频容器。用于封装VP8/VP9的数据。下面多字节的数据是采用小端编码(little-endian)。IVF文件头由32字节组成:bytes 0-3 signature: 'DKIF'bytes 4-5 version (should be 0)bytes 6-7 length of header in bytesbytes _ivf vp8

shua 单-程序员宅基地

文章浏览阅读145次。1、虚拟机:淘宝刷单肯定不能使用真正的电脑来操作,难免会有些记录是给淘宝登记了,所以我们要使用虚拟机来实现多台电脑设备进行操作,推荐使用vmware虚拟机,带快照功能,可以无限制的复制N个镜像系统 2、虚拟机快照:很多人喜欢使用快照复制来生成一大堆电脑,其实这个是很危险的,你想想同样的系统安装时间同样的系统软件版本来你店里买东西,这个淘宝会怎么看?所以还是老实点,建个一段时间注册一..._shua shua had a big quarrel with his gf

realme gt neo3 看屏幕是天马屏幕还是京东方(图文教程)_neo3京东方和天马屏幕怎么分-程序员宅基地

文章浏览阅读3.2w次,点赞10次,收藏16次。realme gt neo3 看屏幕是天马屏幕还是京东方(图文教程)realme gt neo3 看屏幕是天马屏幕还是京东方(图文教程)由于官网删除我的贴子,所以我发布再csdn上,第一次使用,多多包含!教程准备1:电脑2:数据线3: abd 工具 后面我会提供https://pan.baidu.com/s/1mQwaq-xFh8PX8JiLgkpm6A?pwd=jy5u图文縂教程1.打开开发者模式后进行usb调试打开,链接电脑后允许2.解压 adb3.输入adb bugreport &_neo3京东方和天马屏幕怎么分

类中私有属性如何通过Spring赋值_spring单例中的私有变量可以被其他的变量赋值-程序员宅基地

文章浏览阅读503次。首先构建一个学生类 为其中数据添加get、set方法public class Student { private List<Double> scores; private Date birth; private Map<String,String> map; private Properties properties; public Properties..._spring单例中的私有变量可以被其他的变量赋值

娱乐百分百-20090316 冰淇淋少女组 - 生活至上,美容至尚!-程序员宅基地

文章浏览阅读39次。转载于:https://www.cnblogs.com/lixyvip/archive/2010/01/13/1646110.html

C语言笔记 -- 结构体成员前加 . 点_结构体成员前面加点-程序员宅基地

文章浏览阅读4.8k次,点赞24次,收藏46次。加 “.”的话可以不考虑赋值顺序,表示在这个结构体中选择这个变量来赋值,所以可以不考虑结构体中变量的顺序_结构体成员前面加点

随便推点

【Android项目实战 | 从零开始写app(十)】Okhttp+glide+json+ListView实现新闻模块数据解析并显示_android listview和http实现获取新闻列表-程序员宅基地

文章浏览阅读3.4k次,点赞13次,收藏20次。在上一篇: Android项目实战 | 从零开始写app(九)】Tablayout+ViewPager实现页面分类顶部标题页面联动切换 的基础上实现数据的填充展示由于首页会展示到推荐新闻列表,所以今天先把新闻模块的数据先请求下来,就跳着更吧,后面再继续完善首页~~这篇早早就写好了,奈何发布了几次老是说审核不通过,说内容违规???? 无可奈何~菜鸡一枚,写得不好,有问题的请指教~~文章导航一、【Android项目实战 | 从零开始写app(一)】 创建项目二、【Android项目实战 | 从零开_android listview和http实现获取新闻列表

ASP.NET MVC 5 一 入门-程序员宅基地

文章浏览阅读119次。ASP.NET MVC 5 一 入门 本系类教程将要构建ASP.NET MVC 5 Web 应用程序,使用的工具是VS2013 。现在有预览版可以下载了,点击下载VS2013 FOR WEB ISO文件。VS2012 还没用几天呢,2013就要出来,据说数据库..._.net mvc5的body属性

升级PowerShell至4.0版本-程序员宅基地

文章浏览阅读603次。为了更好的使用Cmder v1.2,不得不升级PowerShell为4.0。不知道Cmder的,可以点击这里:https://github.com/cmderdev/cmder和逆天神器 cmder。Powershell是运行在Windows机器上实现系统和应用程序管理自动化的命令行脚本环境。需要.NET环境的支持,同时支持.NET对象。当前PowerShell有5个版..._powershell v4

android cts问题分析,CTS问题分析6-程序员宅基地

文章浏览阅读1.3k次。CTS/GTS问题分析6遇到一个Android P相关的问题,和原来CTS/GTS 问题分析1的表现是一样的,但是将http://gerrit.pt.miui.com/#/c/387000/这个修复cp过来,发现不生效,仍然报错,因此记录一下问题初探测试命令: run gts -m GtsGmscoreHostTestCases -t com.google.android.gts.devicepo..._gts测试问题分析

dvi接口引脚定义_DVI、D系列端子插口针脚定义-程序员宅基地

文章浏览阅读1.9k次。P: 2009-05-10 23:35:263DVI D系列端子插口针脚定义,“WORD-BREAK处理方式:break-all幅度高达140%”,就像如果人们参加赛马[/ align >英文简介:插头,连接器———插头端子>,< /处理起来:“WORD-BREAK风格,就像如果人们参加赛马break-all幅度高达140%”[/ align >,D型端子EIAJ五D-c..._dvi接口音频针脚

android pay和hce区别,对比Apple Pay与安卓HCE的信令技术-程序员宅基地

文章浏览阅读683次。Apple Pay的发布,让从事安卓NFC应用开发者兴奋了一把,苹果对NFC的支持必将推动整个产业的发展,然而Apple Pay与安卓系统上的NFC支付有什么区别呢?特别是安卓系统上的HCE技术。近日,著名HCE方案商SimplyTapp CEO Doug Yeager就在博客中发表了文章,对比Apple Pay与HCE。博客对信令技术进行了简单的介绍,他认为“一个信令可以理解成一个证书的生命”,..._hce nfc apdu unionpay

推荐文章

热门文章

相关标签