Ich habe C++ 2003 zum letzten Mal benutzt und versuche, das neue Zeug zu lernen. Ich arbeite seit einiger Zeit in Java und lerne einfach seine Lambda-Syntax. Ich habe dieses Beispiel in C++ gesehen und mich gefragt, ob jemand es erklären könnte:C++ Lambda und Operatorsyntax
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int i = 42;
char code = 'c';
[=, &i]() mutable
{
i++;
code = 'd';
std::cout << "i: " << i << "code " << code << std::endl;
}();
void wait()
{
cin.clear();
cin.ignore();
cin.get();
}
int main()
{
std::cout << "i: " << i << "code " << code << endl;
// hold output window open
wait();
return 0;
}
Ist diese neue Lambda-Syntax für operator = overload? Ich würde eine Testfunktion schreiben, bin mir aber nicht sicher, wie ich sie aufrufen soll.
Nein, ist es nicht. Hast du es versucht und beobachtet, was passiert? – litelite
Nein, ist es nicht. Sie sollten etwas über Lambdas lesen. Als Nebenbemerkung wird dieses '' cout :: endl; ''nicht kompiliert. – Ron
https://stackoverflow.com/questions/7627098/what-is-a-lambda-expression-in-c11 –