This question already has answers here:
What is a lambda expression in C++11?
(9个答案)
3年前关闭。
我正在阅读来自Facebook Proxygen的源代码,并且注意到一些以前从未见过的语法:
资料来源:https://github.com/facebook/proxygen/blob/master/proxygen/httpserver/samples/push/PushServer.cpp
它是匿名方法吗?
看起来令人困惑,因为如果是匿名方法,
(9个答案)
3年前关闭。
我正在阅读来自Facebook Proxygen的源代码,并且注意到一些以前从未见过的语法:
std::thread t([&] () {
server.start();
});
资料来源:https://github.com/facebook/proxygen/blob/master/proxygen/httpserver/samples/push/PushServer.cpp
它是匿名方法吗?
&
的值是什么,是线程吗?看起来令人困惑,因为如果是匿名方法,
server
的访问方式是否超出范围? 最佳答案
没错,此代码使用匿名函数。基本语法为:[capture-list] (list-params) { function-body}
。所以[&]做的是
通过引用捕获在lambda主体中使用的所有自动变量
您可以阅读更多here
09-04 08:30