0

我写了一个全局静态 lambda,如下所示:

 static auto x = [] (const std::string& y){
   VLOG(3) <<" y:" <<y; 
 };

它在 VLOG 语句上给了我这个错误。:

 statement-expressions are not allowed outside functions nor in template-argument lists
4

1 回答 1

1

这是决定为优化留出空间的结果。相关的错误报告在这里试图重新讨论,并特别提到了您的用例类型。没有优化的编译应该可以工作,尽管我知道这是一个蹩脚的建议。问题在于 lambda 处于全局范围内,因此任何将其带入函数的解决方案都应该是好的。

于 2016-02-23T19:44:29.063 回答