c++ - 通过 lambda 表达式初始化变量?

标签 c++ visual-studio-2012 lambda

我正在尝试使用 lambda 表达式初始化一个变量。我还没有听说这是否可能,所以这可能吗? 例如:

int i([]() { return 1; });

返回

error C2440: 'initializing' : cannot convert from 'wmain::<lambda_b35514739a4854f3d329a617eabe58c1>' to 'int'

这个操作是否可行,只是我的语法错误?

最佳答案

您正在尝试使用 lambda 对象而不是评估 lambda 的结果来初始化变量:

int i([]() { return 1; }());
//                      ^^

关于c++ - 通过 lambda 表达式初始化变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17932024/

相关文章:

c++ - 用C++完成此任务;从AS3.0迁移

.net - 在 Intellisense 注释中显示空行

sockets - Visual Studio 负载测试中的套接字异常

c# - 尝试从非常大的数据中从mysql中的多个相关表检索数据

node.js - 无法在 Lambda 中创建具有 UTC 旁边时区的日期对象

c# - 反转表达式<Func<T, bool>>

c++ - 错误 c3867,不确定我需要做什么来修复

c++ - 在实际创建文件之前检查文件名是否有效

VS2012 C++类特殊成员函数默认并删除

c++ - 如何声明 std::vector of boost histograms ? boost 直方图的类型是什么?