由於接觸C++不久,很多東西比較陌生,今天看阿里雲OSS的C++ SDK文件下載部分例子,發現有如下lambda表達式用法,故了解一下相關知識
/*獲取文件到本地文件*/ GetObjectRequest request(BucketName, ObjectName);
request.setResponseStreamFactory([=]() {return std::make_shared<std::fstream>(FileNametoSave, std::ios_base::out | std::ios_base::in | std::ios_base::trunc| std::ios_base::binary); }); auto outcome = client.GetObject(request);
上面代碼中 setResponseStreamFactory 函數的參數是一個lambda匿名函數,其作用相當於一個函數指針,返回值為一個fstream類型的智能指針shared_ptr
參考文章: