Kai*_*aan 5 c++ lambda visual-studio-2012
我试图使用lambda表达式初始化变量.我没有听说过这是否可能,这可能吗?例如:
int i([]() { return 1; });
Run Code Online (Sandbox Code Playgroud)
返回
error C2440: 'initializing' : cannot convert from 'wmain::<lambda_b35514739a4854f3d329a617eabe58c1>' to 'int'
Run Code Online (Sandbox Code Playgroud)
这个操作是否可行,我的语法只是错误的?
Dav*_*eas 13
您正在尝试使用lambda对象初始化变量,而不是使用评估lambda的结果:
int i([]() { return 1; }());
// ^^
Run Code Online (Sandbox Code Playgroud)
你需要调用 lambda:
int i( []() { return 1; }() );
// ^^
Run Code Online (Sandbox Code Playgroud)
lambda本身是一个表达式,它将一个临时的prvalue称为闭包对象.这些不可转换为int.
| 归档时间: |
|
| 查看次数: |
1855 次 |
| 最近记录: |