2016-07-14 4 views
1

Ich versuche, eine count_if über eine vector<int> in C++ Embarcadero Seattle auszuführen.Ausdruckssyntaxfehler e2188, C++, Embarcadero, Count_If,

Der Vektor wurde erfolgreich konstruiert und instanziiert mit einer Handvoll von Werten, einige ungerade, manche sogar.

I get ‚E2188 Ausdruck Syntax‘ Fehlermeldung über das Lambda in dieser Aussage

int oddCounter = count_if(v.begin(), v.end(), [](int i){return i%2 != 0;}); 

Ich habe eine Reihe von Quellen überprüft und ich kann nichts falsch mit der Syntax finden. Irgendwelche Ideen?

+0

Kompilieren Sie im (mindestens) C++ 11-Modus? – Angew

+0

Vielen Dank Angew. Das hat mich in die richtige Richtung gelenkt. Mein Wissen über Compiler und Einstellungen ist sehr begrenzt. Ich habe es geschafft, es zu kompilieren, indem ich für jetzt auf ein 64-Bit-Windows-Ziel umschalte. Ich vermute, dass es eine direktere Methode gibt - ein Compiler-Flag, das für 32 Bit dasselbe tut. – DMG

Antwort

0

Vielen Dank Angew. Das Lambda wird jetzt kompiliert. Ich gehe davon aus, dass C++ 11 nach dem Wechsel zu einem 64-Bit-Windows-Ziel jetzt enthalten ist.