lambda相关内容

使用Boost.Asio链接异步Lambdas?

我发现自己写的代码基本上看起来像这样: 使用boost :: system :: error_code; socket.async_connect(端点,[&](error_code错误) { if(错误) { print_error b $ b return; } //读标题 socket.async_read(socket,somebuffer,[&](err ..
发布时间:2016-10-14 12:36:54 C/C++开发

C ++ 11 lambda返回lambda

这段代码对JS开发人员来说不是未知的 function get_counter() { return( function(){ var c = 0; return function(){return ++ c;}; }) } 它基本上创建一个创建不同枚举器。所以我想知道如果同样的事情可以做到在C + + 11与新的lambda语义?我最后写这个C ++,不 ..
发布时间:2016-10-14 12:31:58 C/C++开发

是在c ++ inline中的lambda函数

是c ++ inline中的lambda函数? 编译器可以优化内联函数的调用以提高效率。 的问题是:可以编译器优化lambda函数的调用,就像它对简单的内联函数。 例如。 std :: vector vd; std :: for_each(vd.begin(),vd.end(),[](const double d){return d * d;}); ..
发布时间:2016-10-14 12:30:54 C/C++开发

为什么在C ++ 14中使用`std :: bind` over lambdas?

在C ++ 11之前,我使用了 boost :: bind 或 boost :: lambda bind 部分使其进入标准库( std :: bind ),另一部分成为核心语言的一部分(C ++ lambdas)和使用lambdas更容易。现在,我几乎不使用 std :: bind ,因为我可以做几乎任何事情与C + + lambdas。对于 std :: bind 有一个有效的用例,我可以想到: ..
发布时间:2016-10-14 11:59:07 C/C++开发

C ++ lambda表达式的生命周期是什么?

(我已阅读什么是生命周期lambda 我理解C ++ lambda语法只是用于制作实例的糖的匿名类与一个调用操作符和一些状态,我理解该状态的生存期要求(由是否通过引用的值来决定)。但lambda对象本身的生命周期是什么?在下面的例子中, std :: function 实例返回有用吗? code> std :: function meta_add(int x){ ..
发布时间:2016-10-14 11:53:17 C/C++开发

map,lambda,remove_if

所以,我有std :: map,lambda和stl算法(remove_if)的问题。实际上,与std :: list或std :: vector的代码相同。 我的测试示例: #include #include #include struct Foo { Foo():_id(0){} Foo(int ..
发布时间:2016-10-14 10:57:58 C/C++开发

为什么不能在lambda中使用私有方法?

有这样的类: class A { public: bool hasGrandChild const; private: bool hasChild()const; vector儿童 }; 为什么不能使用私有方法 hasChild code>在方法 hasGrandChild()中定义的lambda表达式是这样吗? bool A :: h ..
发布时间:2016-10-14 10:56:04 C/C++开发

将lambda函数指定为默认参数

如何将lambda分配为默认参数?我想这样做: int foo(int i,std :: function f = [](int x) - > int {return x / 2;}) { return f(i); } 但是我的编译器(Mac OS X上的g ++ 4.6) > 错误:本地变量'x'可能不会出现在此上下文中 ..
发布时间:2016-10-14 10:54:57 C/C++开发

如何指定vc11 lambda调用约定

我想通过一个lambda函数指针,它嵌套在一个班,对Windows API的回调函数。我发现没有地方可以指定 __ stdcall 关键字。我用nm命令有人告诉我,编译只支持 __ CDECL ,但经过转储obj的文件,我发现编译将产生三个辅助函数( __ stdcall , __ cdecl , __ fastcall )。所以我的问题是,我怎么可以指定调用约定? 那些下面的代码是我的测试 ..
发布时间:2016-10-14 10:35:13 C/C++开发

如何从移动捕获lambda表达式创建std ::函数?

我试图从移动捕获的lambda表达式创建一个std ::函数。注意,我可以创建一个移动捕获lambda表达式没有问题;只有当我试图将它包装在一个std ::函数,我得到一个错误。 例如: auto pi = std :: make_unique(0); //这里没有问题! auto foo = [q = std :: move(pi)] { * q = 5; ..
发布时间:2016-10-14 10:23:35 C/C++开发

c ++ 0x:在lambda arity上重载

我试图创建一个函数,可以调用一个lambda,需要0,1或2参数。由于我需要代码工作在g ++ 4.5和vs2010(不支持可变参数模板或lambda转换为函数指针),我想出的唯一的想法是选择哪个实现基于arity调用。下面是我的非工作猜测如何应该看起来。有没有办法修复我的代码或有一个更好的方法来做这个一般来说? #include #include ..
发布时间:2016-10-14 10:13:30 C/C++开发

可以表达lambda表达式的“类型”吗?

将lambda表达式视为可调用对象的“语法糖”,可以表示未命名的底层类型? 例如: struct gt { bool operator()(int l,int r){ return l> r; } }; 现在, [](int l,int r){return l> ; r; } 是上述代码的优雅替代(加上必要的gt的可调用对象的创建),但是有一种方法来表达 ..
发布时间:2016-10-13 12:15:19 C/C++开发