1

このコードで「=」パラメータが何に使用されているか説明してもらえますか? の代わりに、他にどのパラメータを使用できます=か? それはどのような違いを生むでしょうか?MSDN は、この件に関してあまり明確ではありません。

//Declaration
auto prerequisite = task<void>([](){});

//Here is where I don't understand the '=' parameter
prerequisite.then([=](task<void> prerequisite){/*custom code goes here*/})
4

1 に答える 1

0

ラムダ イントロデューサー (ラムダの先頭にあるブラケット) 内で、引数として渡されない外側のスコープのデータにアクセスするためのキャプチャを指定できます。

• [=] は、外側のスコープが値によってラムダに渡されることを意味します。したがって、ラムダが定義された場所で読み取り可能だったすべてのデータを読み取ることはできますが、変更することはできません。

• [&] は、外側のスコープが参照によってラムダに渡されることを意味します。したがって、そこに書き込みアクセス権があれば、ラムダが定義されたときに有効だったすべてのデータへの書き込みアクセス権があります。

于 2015-12-29T04:40:22.040 に答える