我想在我的linux机器上运行C++中非常简单的lambda函数(运行gcc版本5.4.0),但出现错误。如何获得lambda函数不能在gcc上工作5+
下面是代码:
#include <iostream>
int main()
{
auto sayHello = [](int a, int b) -> int
{
return a + b;
};
sayHello(55, 66);
return 0;
}
g++ main.cpp -o listener && ./listener -std=c++11
这个工程在Visual Studio中的窗口,但是,即使lambda表达式是supported on gcc 4.5 and higher我得到的错误:
main.cpp: In function ‘int main()’:
main.cpp:5:8: error: ‘sayHello’ does not name a type
auto sayHello = [](int a, int b) -> int
^
main.cpp:10:12: error: ‘sayHello’ was not declared in this scope
sayHello();
谁能告诉我如何解决这个问题?由于
如果您阅读链接的问题和答案,您会注意到他们提到了“-std = C++ 11”标志。弄清楚它作为一项练习留下了什么。 – molbdnilo
我建议关闭,因为这是一个微不足道的错字/错误。 – Walter
@沃尔特我认为这是一个好主意。 – Startec