草庐IT

aws-lambda

全部标签

c++ - lambda 的类型是什么?

我见过这样的代码:std::sort(x,x+N,//Lambdaexpressionbegins[](floata,floatb){returnstd::abs(a)显然std::sort的第三个参数是可以容纳lambda的类型。但那是什么类型?std::sort过载太多,我无法破译它。(我正在考虑构建一个函数列表:我正在考虑使用lambda而不是函数指针,因为后者必须具有大致相同的参数列表)。我想我可以写autoletTheComplerSortOutTheType=[](floata,floatb){returnstd::abs(a)但这对我使用容器没有帮助。

c++ - lambda 函数的快速和通用使用

动机我创建了一个头文件,将Matlab的mex功能包装在c++11类中;特别是对于MxNxC图像。我创建的两个函数是forEach,它迭代图像中的每个像素,还有一个forKernel,它给定图像中的内核和像素,迭代该像素周围的内核,处理各种漂亮的样板索引数学.我们的想法是可以像这样对滑动窗口进行编程:image.forEach([](Image&image,size_trow,size_tcol){//krandlcspecifywhichpixelisthecenterofthekernelimage.forKernel(row,col,kernel,kr,kc,[](Image&i

c++ - 在嵌套的 lambda 中应用 function_traits 时编译失败

首先,我有这样的东西,一个重命名的function_traits来获取lambda的返回类型templatestructFuncAnalyzer{};templatestructFuncAnalyzer{usingTReturn=TRet;};templatestructFunctionAnalyzer:publicFuncAnalyzer{};然后当我在一个方法中有这个时,那个compi:autoa=[](constint&key)->QString{returnQString::number(key);};usingb=FunctionAnalyzer::TReturn;bx;但是

c++ - lambda 函数中的 max_element

关闭。这个问题需要debuggingdetails.它目前不接受答案。编辑问题以包含desiredbehavior,aspecificproblemorerror,andtheshortestcodenecessarytoreproducetheproblem.这将有助于其他人回答问题。关闭7年前。Improvethisquestion我实现了这个功能,但它仍然给出以下错误,我无法弄清楚为什么../usr/include/c++/4.8/bits/stl_algo.h:6325:error:nomatchforcallto'(Farm::killHeaviestAnimalOnFarm

c++ - 了解 Lambda 闭包类型如何删除默认构造函数

来自5.1.2[19]Theclosuretypeassociatedwithalambda-expressionhasadeleted(8.4.3)defaultconstructorandadeletedcopyassignmentoperator.Ithasanimplicitly-declaredcopyconstructor(12.8)andmayhaveanimplicitlydeclaredmoveconstructor(12.8).[Note:Thecopy/moveconstructorisimplicitlydefinedinthesamewayasanyother

c++ - lambda 表达式的 noexcept 和空抛规范之间有什么区别吗?

举个例子:doublevalues[]{2.5,-3.5,4.5,-5.5,6.5,-7.5};std::vectorsquares(std::end(values)-std::begin(values));std::transform(std::begin(values),std::end(values),std::begin(values),std::begin(squares),[](doublex1,doublex2)throw(){returnx1*x2;});这在功能上等同于以下内容吗?[](doublex1,doublex2)noexcept{returnx1*x2;})

c++ - 传递返回多态 unique_ptr 的 lambda 作为函数指针

我想传递一个非捕获的lambda,它返回一个std::unique_ptr,作为std::unique_ptr(*)()类型的函数指针.但是,这仅在我将lambda的返回类型明确声明为std::unique_ptr时才有效。.为什么要明确说明返回类型?为什么它适用于std::function没有这个额外的返回类型?#include#includestructBase{virtual~Base()=default;};structDerived:Base{};structFailsForF2{usingFunction=std::add_pointer_t()>;FailsForF2(F

c++ - 捕获 lambda 异常

如何捕获作为异常抛出的lambda?我尝试了以下方法:#includeintmain(){try{throw[](){};}catch(std::function&fn){fn();}}但是输出是terminatecalledafterthrowinganinstanceof'main::{lambda()#1}'是否可以捕获抛出的lambda异常? 最佳答案 你可以显式地抛出一个std::function:intmain(){try{throwstd::function([](){std::cout&fn){fn();}}

c++ - 在带有 std::unique_ptr 的 lambda 中使用 std::bind

//Byconstl-valuereferenceautofunc2=std::bind([](conststd::unique_ptr>&pw)//fine{std::coutsize()>(22,1));//Bynon-constl-valuereferenceautofunc3=std::bind([](std::unique_ptr>&pw)//fine{std::coutsize()>(22,1));//ByValueautofunc4=std::bind([](std::unique_ptr>pw)//error{std::coutsize()>(22,1));func4(

c++ - 不通过文件系统将 uint8_t* 缓冲区上传到 AWS S3

免责声明:我不是C++程序员,请救救我吧。我正在尝试使用AWS开发工具包在C++中创建PutObjectRequest。我有一个“uint8_t*”(在Java领域,我调用它为byte[],我相信在c++星球上这是一个缓冲区),我需要将它放入Aws::IOStream不知何故。所有示例都显示了直接来自文件系统的数据。我见过几个类似(但不是真的)的问题,其答案指向另一个名为Boost的第三方库,但肯定这是一个常见的用例?为什么我需要第三方库来做一些使用AWS开发工具包应该可以做到的事情?:“我有数据,我想把它放在S3上。不,它不在文件系统中,是的,我在内存中创建了它。”uint8_t*b