c++11 function
生活随笔
收集整理的這篇文章主要介紹了
c++11 function
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
是代指返回值為void型的函數(shù)指針。
function?最大的功能是表達(dá)匿名函數(shù),特別是?[]?里面捕捉了當(dāng)前上下文變量的匿名函數(shù)
類模版?std::function是一種通用、多態(tài)的函數(shù)封裝。std::function的實(shí)例可以對(duì)任何可以調(diào)用的目標(biāo)進(jìn)行存儲(chǔ)、復(fù)制、和調(diào)用操作,這些目標(biāo)包括函數(shù)、lambda表達(dá)式、綁定表達(dá)式、以及其它函數(shù)對(duì)象等。
用法示例:
①保存自由函數(shù)
void printA(int a)
{cout<<a<<endl;
}std::function<void(int a)> func;func = printA;func(2);
②保存lambda表達(dá)式
std::function<void()> func_1 = [](){cout<<"hello world"<<endl;}; 2 func_1();
運(yùn)行輸出:hello world
例如:
頭文件中我定義
LambdaOp(const std::function<void()> & op = []() {}, bool isHold = true);
那cpp中我就可以這么寫
new LambdaOp([&]() {……}, true));
③保存成員函數(shù)
struct Foo {Foo(int num) : num_(num) {}void print_add(int i) const { cout << num_+i << '\n'; }int num_;
};// 保存成員函數(shù)std::function<void(const Foo&, int)> f_add_display = &Foo::print_add;Foo foo(2);f_add_display(foo, 1);
運(yùn)行輸出: 3
總結(jié)
以上是生活随笔為你收集整理的c++11 function的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++ Lambda
- 下一篇: C++ 中NULL 和 nullptr