Я читал через исходный код из Proxygen Facebook, и я заметил, некоторые синтаксис я никогда не видел раньше:Что такое синтаксис: std :: thread t ([&]() {...}) ;?
std::thread t([&]() {
server.start();
});
Источник: https://github.com/facebook/proxygen/blob/master/proxygen/httpserver/samples/push/PushServer.cpp
Является ли это анонимный метод? И каково значение &
, это нить?
Это выглядит запутанным, потому что, если это анонимный метод, то как server
доступен, разве это не вне сферы действия?
Это лямбда. '[&]' Означает, что переменные в текущей области захватываются ссылкой (в данном случае 'server'). –
Его функция * лямбда *. http://en.cppreference.com/w/cpp/language/lambda – Galik
Спасибо, ребята. Позаботьтесь, и я соглашусь. – BugHunterUK