Przykłady, które znalazłem, że chwytanie this
w lambda używa tego wprost; na przykład:
capturecomplete = [this](){this->calstage1done();};
Ale wydaje się, że możliwe jest również użycie go w sposób dorozumiany; na przykład:
capturecomplete = [this](){calstage1done();};
Przetestowałem to w g ++ i skompilowałem.
Czy to jest standardowy C ++? (a jeśli tak, to która wersja), czy jest to jakaś forma rozszerzenia?
this
i używaniem go w
this->
jawnego użycia , który ma na celu zagwarantowanie, że jawnie przechwycone wartości zostaną użyte jawnie. Pamiętaj,[](){ calstage1done(); }
że nie byłoby to zgodne z prawem, ponieważthis
nie zostałoby schwytane; ale podczas robieniathis
wyraźnie, że to zaskakujące dla organizmu funkcji, aby pojawić się na pierwszy rzut oka nie do faktycznie korzysta z przechwyconego wartość:[this](){ calstage1done(); }
.