C ++ lambda无法转换为int
c++ lambda can't convert to int
我尝试按如下方式使用嵌套 lambda:
int main() {
auto x=[](int a){
return [a](int b){
return a+b;
};
};
int xx = x(1)(2);
(void)xx;
return 0;
}
但是vs2013编译报错(C++11语言级别):
[...] can't convert to int.
怎么了?
您的代码片段格式正确,这是 VS2013 中使用的 MSVC C++ 编译器版本中的编译器限制或错误。请注意,VS2013 仅声称部分 C++11 支持,例如What's New for Visual C++ in Visual Studio 2013:
Improved ISO C/C++ Standards Support
Compiler
Supports these ISO C++11 language features:
- [...]
我尝试按如下方式使用嵌套 lambda:
int main() {
auto x=[](int a){
return [a](int b){
return a+b;
};
};
int xx = x(1)(2);
(void)xx;
return 0;
}
但是vs2013编译报错(C++11语言级别):
[...] can't convert to int.
怎么了?
您的代码片段格式正确,这是 VS2013 中使用的 MSVC C++ 编译器版本中的编译器限制或错误。请注意,VS2013 仅声称部分 C++11 支持,例如What's New for Visual C++ in Visual Studio 2013:
Improved ISO C/C++ Standards Support
Compiler
Supports these ISO C++11 language features:
- [...]