Ich wurde von Facebook Proxygen durch den Quellcode zu lesen, und ich einige Syntax bemerkte ich nie zuvor gesehen hatte:Welche Syntax ist das: std :: thread t ([&]() {...});
std::thread t([&]() {
server.start();
});
Quelle: https://github.com/facebook/proxygen/blob/master/proxygen/httpserver/samples/push/PushServer.cpp
Ist es eine anonyme Methode? Und was ist der Wert von &
, ist es der Thread?
Es sieht verwirrend aus, denn wenn es eine anonyme Methode ist, wie ist server
zugänglich, ist es nicht außerhalb des Geltungsbereichs?
Es ist ein Lambda. Das '[&]' bedeutet, dass Variablen im aktuellen Bereich durch Verweis (in diesem Fall 'Server') erfasst werden. –
Es ist eine * Lambda-Funktion *. http://en.cppreference.com/w/cpp/language/lambda – Galik
Danke Jungs. Kümmere dich um Antworten und ich werde akzeptieren. – BugHunterUK