我写跟随代码?
static int count = []()->int
{
int count = 0;
for(int i = 0; i < categories.size(); ++i)
{
if(!categories[i].isCategory())
{
count++;
}
}
return count;
};
Run Code Online (Sandbox Code Playgroud)
并得到错误:error: cannot convert '__lambda0' to 'int' in initialization。
我的代码片段的含义是分配__lambda0给static int count而不是返回内部计数吗?
你不叫它!确保你这样做:
static int count = []()->int
{
int count = 0;
for(int i = 0; i < categories.size(); ++i)
{
if(!categories[i].isCategory())
{
count++;
}
}
return count;
}();
// ^^ THIS THIS THIS THIS
Run Code Online (Sandbox Code Playgroud)
但是,恕我直言,您最好不要使用 lambda。如果您在代码的其他部分使用它,那么将它放在一个独立的(不是 lambda)函数中。