以 C++ 为单位的 lambda 输出
lambda output in C++
以下代码的输出为 0, 0
。代码有什么问题? m
通过引用传递,它应该是1
,对吧?
int main()
{
int m = 0;
int n = 0;
[&, n]() {m = n + 1; };
cout << m << endl << n << endl;
}
你需要调用 lambda
[&, n]() {m = n + 1; }();
// ^^
现在,输出应该是您所期望的。
正如 Piotr 的评论所说,您还可以初始化一个变量来保存 lambda 并调用它
auto lambda = [&, n]() {m = n + 1; };
lambda();
相关文章:
- 递归函数计算序列中的平方和(并输出过程)
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 可组合的lambda/std::函数与std::可选
- 为什么我的代码在输出中增加了93天
- 如何从void函数输出字符串
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- AES加密到解密未正确输出
- 如何将c++程序的一些输出传递给shell,以便在shell中使用
- 使用C++程序合并排序没有得到正确的输出
- 如何修改Lambda表达式以将输出放入文本文件
- C++如果使用 lambda 表达式的语句返回 true,但输出来自 false,为什么
- 当存在一行时,Cppcheck 不会输出警告:auto lambda = [](){};
- 以 C++ 为单位的 lambda 输出
- 如何在另一条消息(M1)之前调用带有消息(M2)的lambda函数,但输出要"M2 M1"?
- 被lambda输出弄糊涂了