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