(相关资料图)
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
,并传递了相应的参数。
下一篇:最后一页
X 关闭
-
一文弄懂function与invoke的区别
std::function和std::invoke是两个不同的东西,功能也不同。std::function是一个函数对象的封装器,可以用
-
定投基金购买技巧有哪些?怎么选购?|全球讯息
基金定投是一种比较稳健和简单的投资方式,适合不想花太多时间和精力研究市场的普通投资者。那么定投基金购
-
焦点消息!流星雨又来临歌词热评_流星雨又来临 歌词
1、歌曲名:流星雨又来临歌手名:魏晨专辑名:千方百计魏晨-流星雨又来临乘着风纸飞机划过天际梦里花开的香
-
环球速讯:一念起风声鹤唳一念灭繁花似锦是什么意思_一念起万水千山一念灭沧海桑田什么意思
1、一、一念之间拼音:yīniànzhījiān释义:是一个理学,心学用语,亦是直指人心,最为切要的一句话。2、相