2012-11-20 77 views
1

我正在關注this指南,並且我正在打擊代碼的這些部分,其中包括術語[this](只需Ctrl-F它;您會明白我的意思)。我不確定這是一個C++的東西還是C++/CX的東西,但是,不管怎樣,我不知道它是什麼。C++/CX中的[this]是什麼? (Windows 8)

這是什麼?

回答

6

它被稱爲「Lambda Closure」,它表示當前實例(this)將被傳遞到lambda體(使您可以使用它的變量並調用它的方法)。

本頁面給出拉姆達閉包的一個很好的總結:
http://www.cprogramming.com/c++11/c++11-lambda-closures.html

[]捕獲沒有(或一片焦土策略?)
[&]通過參考
[捕捉任何引用變量=]通過複製捕獲任何引用的變量
[=,& foo]通過複製捕獲任何引用的變量,但通過引用捕獲變量foo
[bar]通過製作副本來捕捉欄;不要複製別的
[這]奪取封閉類

+0

太棒了,謝謝!拉姆達體是什麼?有一個範圍,但語法真的搞亂了我的頭。 create_task(feedOp)。然後([此](SyndicationFeed ^飼料) - > SyndicationFeed^ \t <{。。。} - ?參照該特定的代碼 –

+0

什麼是拉姆達體這只是一個匿名函數 –

+1

基本上,lambda體將在異步操作(feedOp)完成時被回調。 –