使用C 11中的lambdas值
Using values from lambdas in C++ 11
可能的重复:
C 11 lambda表达式末尾的括号
#include <iostream>
int main(int argc, char* argv[])
{
int j;
[&](){j = 10;}(); // why I need the last rounded parentheses () and what is their purpose ?
// ...
return(0);
}
我几乎得到了有关兰伯达的工作方式的所有内容,我的最后一个问题是关于为什么我需要上述代码中报告的最后几个括号。
lambda的蓝图是
[](){}
另外,我正在通过参考来对我的lambda进行输入,我直接使用此lambda写入j
,但是我的编译器抱怨这个lambda如果我不放置这个lambda会产生未使用的值。lambda末尾的额外()
。
所以,最后,lambda是这个
[](){}
或此
[](){}()
?
[](){}
定义了临时的lambda函数,最终的 ()
调用其 operator()
(即函数调用操作员)=>>>>您正在定义(临时)lambda并将其称为现场。/p>
您可以更好地"看到"它
([](){})()
^^^^^^ ^^
|| invokes the "function call operator"
lambda definition
lambda函数是 [](){}
。当您在其后添加括号时,它将移动lambda函数。
编写[](){}
,您只需声明该功能即可。这使您能够使用诸如auto my_lambda = [](){}
之类的东西存储它,以便以后致电my_lambda()
。
呼叫操作员将立即执行lambda。
int x = [] { return 5; }(); // x == 5
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- .cpp和.h文件中的模板专用化声明
- 反向给定链表中的K节点
- 正在查找文档以获得PS4平台的C++中的设备信息
- enum是C++中的宏变量还是整数变量
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 将字符串存储在c++中的稳定内存中
- 文本文件中的单词链表
- 递归函数计算序列中的平方和(并输出过程)
- C 中的枚举和lambdas的地图
- 将信号连接到QT5中的C 11 lambdas
- C++14/17中的懒惰评估-只有lambdas或期货等
- lambdas在C 中的正向声明
- 访问Lambdas中的外部上下文
- 使用C 11中的lambdas值
- 为什么要在lambdas中捕获这个以及指向这个的共享指针
- 如何使用QT5中的lambdas将具有int参数的信号连接到具有枚举参数with的插槽
- C++中的Lambdas将一个函数赋予另一个函数
- 模板参数值中的Lambdas
- c++将Lambdas与vector中的Function指针区分开来