lambda相关内容

Lambda捕获作为const引用?

是否可以通过const引用在lambda表达式中捕获? 我希望下面标记的赋值失败,例如: #include #include #include #include using namespace std; int main() { string strings [] = { ..
发布时间:2016-10-13 12:15:05 C/C++开发

我应该使用std :: for_each?

我总是试图学习更多关于我使用的语言(不同的风格,框架,模式等)。我注意到,我从未使用过 std :: for_each 所以我想我也许应该开始。在这种情况下的目标是扩大我的心,不以某种程度(可读性,表现力,紧凑性等)来改进代码。 因此,考虑到这种情况,使用 std :: for_each 进行简单任务,例如打印一个向量是一个好主意: for_each(v.begin(),v.end( ..
发布时间:2016-10-13 12:12:44 C/C++开发

如何使用lambda表达式作为模板参数?

如何使用lambda表达式作为模板参数?例如。作为初始化std :: set的比较类。 以下解决方案应该可以工作,因为lambda表达式只创建一个匿名结构,它应该适合作为模板参数。 代码示例: struct A {int x; int y;}; std :: set bool { return lhs ..
发布时间:2016-10-13 12:09:27 C/C++开发

C ++ 11和缺乏多态lambdas - 为什么?

我一直在审查 C ++ 11 标准的草稿版本。特别是关于 lambdas 的部分,我对不引入多态lambda语言的推理感到困惑。 / p> 例如,在100001种方式中,可以使用多态lambdas,我希望我们可以使用如下代码: template void foo(Container c) { for_each(c.begin(),c. ..
发布时间:2016-10-13 12:05:42 C/C++开发

返回lambda表达式的函数

我想知道是否可以编写一个函数来返回一个lambda函数在C ++ 11。当然一个问题是如何声明这样的函数。每个lambda都有一个类型,但该类型在C ++中不可表达。我不认为这会工作: auto retFun() - > decltype([](int x) - > int) { return [](int x){return x; } } 也不是这样: ..
发布时间:2016-10-13 12:02:53 C/C++开发

为什么在未求值的操作数中不允许lambda表达式,但允许在常数表达式的未求值部分中?

如果我们查看草稿C ++标准部分 5.1.2 段落 em>): lambda表达式的求值导致临时的临时值(12.2)。这个临时被称为闭包对象。 lambda表达式不应出现在未求值的操作数中(第5条)。 [注意:一个闭包对象的行为像一个函数对象(20.8).- end note] 和 5.19 段落说: 是核心常量表达式,除非包含以下之一作为潜在求值的子表达式(3.2),但逻辑AN ..
发布时间:2016-10-13 11:32:28 C/C++开发

C ++ 0x lambda捕获的值总是const?

有没有什么方法来捕获值,并使捕获的值不恒定?我有一个图书馆函子,我想捕获&调用一个非const方法,但应该是。 以下不编译,而是使用foo :: operator()const修复它。 struct foo { bool operator()(const bool& a) { return a; } }; int _tmain(int argc,_TCHAR ..
发布时间:2016-10-13 11:15:42 C/C++开发

do c ++ 11 lambdas捕获他们不使用的变量?

当我使用 [=] 来表示我想要所有的局部变量被一个lambda捕获的值,将导致 all 所使用的所有局部变量因此,例如,如果我有: 矢量 my_huge_vector(100000); int my_measly_int; some_function([=](int i){return my_measly_int + i;});将$ my_huge_vector复制 ..
发布时间:2016-10-13 10:09:40 C/C++开发

Lambda表达式作为类模板参数

可以将lambda表达式用作类模板参数吗? (请注意,这是一个与这一个非常不同的问题,它询问是否lambda表达式本身可以模板化。) 我问你是否可以这样做: template struct Foo {}; // ... Foo void {})> foo; 这在例如类模板有各种参数例如 ..
发布时间:2016-10-13 10:09:26 C/C++开发

Lambda函数作为基类

使用Lambdas进行游戏我发现了一个我不能完全理解的有趣的行为。 假设我有一个 struct Overload 来源于2个模板参数,并且有一个使用F1 :: operator(); 子句。 现在如果我从两个函数派生我只能访问F1的操作符()(如我所料) 如果我从两个Lambda函数派生,这不再。真:我可以从F2访问操作()太 的#include<&iostream的 ..
发布时间:2016-10-13 10:08:17 C/C++开发

constexpr是否支持lambda函数/表达式?

struct Test { static const int value = []() - > int {return 0; }(); }; 使用gcc-4.6,我得到类似于错误:function需要constexpr 。我尝试了多种组合在 constexpr 在各个地方,但没有运气。 是 constexpr 也支持lambda函数(不管 return 是否指 ..
发布时间:2016-10-11 23:18:09 C/C++开发

为什么在C ++ 11中的lambda函数不具有函数<>类型?

我正在玩c ++ 11的功能特性。有一件事我发现奇怪的是,lambda函数的类型实际上不是一个函数类型。更重要的是,lambda的类似推理机制似乎不太好。 附加的是一个小例子,其中我测试翻转函数的两个参数添加两个整数。 (在我的例子中, addInt_f 的类型已使用函数显式定义,而 addInt_l 是类型为 auto 的类型引用的lambda。 编译代码,翻转函数可以接受明 ..
发布时间:2016-10-11 23:11:27 C/C++开发