6
Czy ktoś może wyjaśnić różnicę między zamknięciami i przedłużeniami? Odpowiednie artykuły w Wikipedii tak naprawdę nie porównują różnic między nimi.Różnica między zamknięciami i kontynuacjami
Czy ktoś może wyjaśnić różnicę między zamknięciami i przedłużeniami? Odpowiednie artykuły w Wikipedii tak naprawdę nie porównują różnic między nimi.Różnica między zamknięciami i kontynuacjami
Zamknięcie to funkcja przechwytująca dane ze środowiska, w którym została zadeklarowana.
int myVar = 0;
auto foo = [&]() { myVar++; }; <- This lambda forms a closure by capturing myVar
foo();
assert(myVar == 1);
Kontynuacja jest bardziej abstrakcyjne pojęcie, i odnosi się do tego, co kod powinien być wykonany później. Można go zrealizować za pomocą zamknięcia.
myTask = Task([]() { something(); });
myTask.then([=]() { myFoo.bar(); }); // This closure is the continuation of the task
myTask.run();