Я новичок в лямбда, и мне трудно понять, как работает список параметров лямбда-выражения.Ссылка на лямбда-параметры в C++/CX
код является частью метода аутентификации facebook:
---------------- begin snippet ------------------
auto webAuthenticationOperation = WebAuthenticationBroker::AuthenticateAsync(WebAuthenticationOptions::Default, startURI, endURI);
webAuthenticationOperation->Completed = ref new AsyncOperationCompletedHandler<WebAuthenticationResult^>([output, facebookOutput, facebookToken](IAsyncOperation<WebAuthenticationResult^>^ thisOperation)
{
if (thisOperation->ErrorCode.Value == 0)
----------------some other stuff ---------------
В частности, я не знаю, как thisOperation на самом деле относится к WebAuthenticationResult, который в настоящее время обрабатываются.
Я прочитал блок, как:
1.) начать проверку подлинности асинхронной
2.), когда аутентификация завершена, запустите функцию, определенную лямбда
Но лямбда-функция должна знать об ЭТОЙ конкретной операции аутентификации (я предполагаю, что есть какой-то результат, который возвращается нам после его завершения). Основываясь на списке параметров лямбда, похоже, что мы только что указали указатель на результат веб-аутентификации, фактически не указав его ни на что.
Как это thisOperation заканчивается ссылкой на правильный объект?
Обратите внимание, что C++/CLI и C++/CX - это разные языки, хотя они имеют общий синтаксис. C++/CLI нацеливается на CLI и использует модель собранного мусора; C++/CX предназначается для выполнения Windows Runtime и использует объектную модель на основе COM-объектов. –