Linuxマシン(gccバージョン5.4.0を実行中)でC++で非常に単純なラムダ関数を使用しようとしていますが、エラーが発生しています。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
これは、ラムダはsupported on gcc 4.5 and higherであっても、私はエラーを取得し、Windows上のVisual Studioで動作しますが、::
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
@Walter私はそれが素晴らしい考えだと思います。 – Startec