当前热讯:function与invoke有什么区别?
2023-04-28 12:03:50
来源:
面包芯语
std::function和std::invoke是两个不同的东西,功能也不同。std::function是一个函数对象的封装器,可以用
(资料图片)
std::function
和std::invoke
是两个不同的东西,功能也不同。std::function
是一个函数对象的封装器,可以用来封装任意类型的可调用对象,比如函数指针、lambda表达式等,而 std::invoke
则是一个函数模板,用于在统一的接口下调用可调用对象。
比如,我们可以使用 std::function
来存储一个函数指针:
上述代码中,我们将函数指针 foo
封装成了一个 std::function
对象 f
,然后通过调用 f(1, 2)
来调用函数 foo
。
std::invoke
的作用是提供一种通用的函数调用语法,可以用统一的方式来调用各种可调用对象,而不必关心它们具体是什么类型。
比如,可以使用 std::invoke
来调用一个东西,无论这个东西是函数指针、函数对象还是成员函数指针:
上面代码,使用 std::invoke
分别调用了函数 foo
和类 Bar
的成员函数 bar
,并传递了相应的参数。
最后,简单总结一下,std::function
和 std::invoke
的使用场景是不同的。std::function
适用于需要存储可调用对象的场景;而 std::invoke
则适用于统一调用各种不同类型的可调用对象的场景。
标签:
[责任编辑:{haixiayule]
网罗天下
最近更新
-
当前热讯:function与invoke有什么区别?
-
肖战鹿晗GUCCI内场互动 两位顶流顶峰相见了!
-
《萌探探探案3》开播 狂飙剧组将与萌探家族探案-每日报道
-
《了不起!舞社》第二季 杨丞琳演绎女将风范|天天微动态
-
《哈哈哈哈哈》第三季 主题曲诞生过程引全网爆笑
-
颜心记全员初见 罗云熙宋轶主演颜心记故事内容
-
天天热门:变形金刚:超能勇士崛起定档 新阵营引爆正邪决战
-
《蜘蛛侠:纵横宇宙》定档 蜘蛛侠内战燃炸暑期档
-
数码宝贝:可惜了,奥加兽为救亚古兽而牺牲,奥加兽也开始领便当了?
-
广交会可以免费参观吗?广交会东西便宜吗?
-
世界快播:港股异动 | 洪九果品(06689)涨超8% 机构看好公司今年进口水果品类营收增长 维持“买入”
-
《斗破苍穹之少年归来》曝预告 ,萧炎萧薰儿热血归来写传奇
-
焦点速看:电影《灌篮高手》热映曝“运动男孩”预告,银幕内外所有人共享热血青春
-
《变形金刚:超能勇士崛起》新阵营加盟引爆正邪决战,围绕擎天柱所率领汽车人展开-每日看点
-
环球速看:《魔幻奇缘之宝石公主》明日全国上映,终极版预告发布
-
电影《倒数说爱你》苏州路演满载幸福,“恋爱轩妍”互谈彼此角色成长_世界球精选
-
“电影文创衍生品展会”推出,200多家展位吸引影迷驻足|世界最新
-
《龙城》聚焦“原生家庭”折射现实思考,直击典型中国家庭问题-全球快资讯
-
全球播报:加强文学经典进行影视化改编,拍出新“人生”
-
古装穿越短剧《病娇王爷仵作妻》正式登录腾讯短剧平台,讲述女法医孔柒柒穿越故事_天天动态
-
《蜘蛛侠:纵横宇宙》宣布中国内地定档6月2日,中美同步上映
-
马丁《花月杀手》10月6日北美限定影院上映,片长3小时26分钟 热资讯
-
《蓝精灵》2025年2月14日北美上映,蕾哈娜为“蓝妹妹”配音 环球信息
-
迪士尼动画电影《星愿》11月22日在北美上映,导演克里斯·巴克和新人导演弗恩·维拉桑托恩执导
-
《饥饿游戏:鸣鸟与蛇之歌》 11月17日北美上映,《头脑特工队》迈克尔·阿恩特参与创作
-
【全球新视野】动画电影《美猴王》今年夏季正式上线,新剧照被吐槽太丑 ,周星驰参与制作
-
今日热搜:《超级马里奥兄弟大电影》即将突破10亿美元,宫本茂感谢媒体差评
-
海来阿木2023首场个人演唱会完美收官 经典歌曲嗨唱贵州
-
头条焦点:《哈哈哈哈哈》第三季正在热播 首支主题曲诞生过程引全网爆笑
-
【数字中国建设有“福”气】推进数字经济发展 助力乡村振兴