数组初始化需要一个包含大括号的初始值设定项列表lambda
array initialization requires a brace-enclosed initializer list lambda
我是lambda表达式的新手,有点困惑为什么这里会出现错误?
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int arr[] = { 11, 21, 4, 13 };
for_each(arr, arr + 4, [arr](int x) {
cout << x;
});
return 0;
}
我只是为这个功能添加LAMBDA。
void fun1(int x)
{
cout << x << " ";
}
这是visualstudio上的错误消息。
'main::<lambda_4ee0815d3a456ed46cc70a2a94c10f76>::arr':
array initialization requires a brace-enclosed initializer list Project1
您不能复制数组,所以如果您确实需要arr
,您可以通过引用来捕获它:
for_each(arr, arr + 4, [&arr](int x) { cout << x; });
// ^^^
然而,由于您没有引用lambda主体中的数组,因此根本不需要捕获它:
for_each(arr, arr + 4, [](int x) { cout << x; });
// ^^^^
相关文章:
- 列表.erase 中的 lambda 表达式
- Simulink "Access Violation"写入 C++ lambda 函数捕获列表中的 PWork 变量
- 将 lambda 函数转换为具有混合 lambda 引入器和参数列表的函子结构
- 没有捕获列表的 lambda 通常作为普通函数实现吗?
- C++参数列表中带有省略号的 lambda
- 将类成员指针传递给 Lambda 捕获列表 c++11
- 在为工作线程访问 lambda 中捕获的向量列表中的元素引用时,是否需要互斥锁?
- 与lambda一起使用虚拟继承在初始化列表中捕获此问题的GCC错误
- 在没有捕获列表的情况下访问 lambda 中的变量
- Do=在lambda的捕获列表中捕获this指针
- 如何使可变 lambda 捕获列表的某些成员变得非常量
- 在类中使用时,lambda 捕获列表中的 [this] 和 [&] 是否等效?
- 为什么 lambda 表达式的捕获列表无法使用结构化绑定分解
- C++ lambda 参数列表
- 构造函数初始化列表中可变参数的Lambda捕获
- C++11 lambda捕获列表[=]使用引用
- 带有变量参数列表的c++11 lambda函数
- 构造函数初始值设定项列表中的 Lambda 可以使用哪些标识符
- 是否可以提取 lambda 的捕获列表
- 您可以在类的初始化列表中使用 lambda 吗?