解释此 Concurrency::Task 调用中的“=”符号参数
Explain the "=" sign parameter in this Concurrency::Task call
有人可以向我解释一下这段代码中“=”参数的用途吗?
除了 =
,我还可以使用哪些其他参数?这会有什么不同? MSDN 在这个问题上不是很清楚。
//Declaration
auto prerequisite = task<void>([](){});
//Here is where I don't understand the '=' parameter
prerequisite.then([=](task<void> prerequisite){/*custom code goes here*/})
在lambda introducer(lambda开头的括号)中,你可以指定一个捕获到
访问未作为参数传递的外部范围的数据:
• [=] 表示外部作用域按值传递给lambda。因此,您可以阅读但不能
修改定义 lambda 的所有可读数据。
• [&] 表示外部作用域通过引用传递给lambda。因此,如果您在此处具有写入权限,则您拥有对定义 lambda 时有效的所有数据的写入权限。
有人可以向我解释一下这段代码中“=”参数的用途吗?
除了 =
,我还可以使用哪些其他参数?这会有什么不同? MSDN 在这个问题上不是很清楚。
//Declaration
auto prerequisite = task<void>([](){});
//Here is where I don't understand the '=' parameter
prerequisite.then([=](task<void> prerequisite){/*custom code goes here*/})
在lambda introducer(lambda开头的括号)中,你可以指定一个捕获到 访问未作为参数传递的外部范围的数据:
• [=] 表示外部作用域按值传递给lambda。因此,您可以阅读但不能 修改定义 lambda 的所有可读数据。
• [&] 表示外部作用域通过引用传递给lambda。因此,如果您在此处具有写入权限,则您拥有对定义 lambda 时有效的所有数据的写入权限。