Ich bin sehr neu zu diesem Feature, ich habe gerade über Lambda Ausdruck in C++ gelesen und versucht, es in einem einfachen Programm zu implementieren.Warum C++ Lambda Expression funktioniert nicht
int main()
{
std::string name;
int a = 5;
std::cout << "What is your name? ";
getline (std::cin, name);
for([&](){a = 7;};a > 0; a--)
{
std::cout << "Hello, " << name << "!\n";
}
}
aber seine nicht funktioniert, wie ich dachte es wird .. Meine Vermutung: [&](){a = 7;}
dieser Wert der Variablen ein bis 7 von 5, aber nicht seine ändern .. Gibt es etwas falsch in Code ?? Oder ist nur meine Annahme falsch?
Mögliches Duplikat von [Lambda gibt '1' alle Zeit zurück] (http://stackoverflow.com/questions/28273891/lambda-returns-1-all-time) –
Sie haben das Lambda erstellt und es weggeworfen. Sie müssen den Operator() aufrufen, um ihn auszuführen. –
@RaymondChen hat es .. das Problem gelöst .. Danke .. :) –