在c中初始化lambda表达式

weixin_38081906 2019-09-12 01:48:01
我写下面的代码: static int count = []()->int { int count = 0; for(int i = 0; i < categories.size(); ++i) { if(!categories[i].isCategory()) { count++; } } return count; }; 并得到错误:错误:初始化时无法将’__lambda0’转换为’int’. 我的代码片段的含义是否将__lambda0赋值给静态int计数而不是返回内部计数?
...全文
44 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38091394 2019-09-12
  • 打赏
  • 举报
回复
你没有打电话给它!确保你这样做: 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 但是,恕我直言,你最好不要使用lambda.如果你在代码的其他部分使用它,那么将它放在一个独立的(而不是lambda)函数中.

473

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧