有人可以向我解释一下这个代码中使用了'='参数吗?
我可以使用哪些其他参数代替=
?它会有什么不同? MSDN对此问题不是很清楚。
//Declaration
auto prerequisite = task<void>([](){});
//Here is where I don't understand the '=' parameter
prerequisite.then([=](task<void> prerequisite){/*custom code goes here*/})
答案 0 :(得分:0)
在lambda导入器内部(lambda开头的括号)中,您可以指定捕获到 访问未作为参数传递的外部作用域的数据:
•[=]表示外部作用域按值传递给lambda。因此,您可以阅读但不能阅读 修改在定义lambda的地方可读的所有数据。
•[&amp;]表示外部作用域通过引用传递给lambda。因此,只要您具有写入权限,就可以对定义lambda时有效的所有数据进行写访问。