![](/img/trans.png)
[英]What would a default lambda capture mode via init capture be like?
[英]What is the default capture of a lambda?
我正在閱讀一篇文章,內容如下
如果存在任何捕獲默認值,則可以隱式捕獲當前對象(* this)。 如果隱式捕獲,則始終通過引用捕獲,即使捕獲默認值為=。
我很難理解上述說法-捕獲默認值是什么? 這是否意味着,如果我用=
為捕捉(這意味着在當前范圍復制變量),它含蓄地增加了this
對捕獲以及因此允許我用this
?
捕獲默認值是什么?
=
或&
。
逗號分隔的捕獲列表( []
)可以選擇以以下捕獲默認值之一開頭: =
或&
(可能是列表中的唯一元素)。 如果存在捕獲默認值,並且您嘗試在lambda中使用必須捕獲的變量(自動變量或this
),則捕獲默認值將按值( =
)或按引用( &
)捕獲該變量。
這是否意味着,如果我用
=
為捕捉它隱含增加this
給捕獲
是的,但前提是您實際使用它(直接或通過訪問類成員)。
捕獲默認值不會捕獲任何變量,除非您在lambda中實際使用了它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.