Promessas I: O que é uma closure?
Closures são funções que lembram seus ambientes léxicos. Um ambiente léxico é o escopo em que uma função foi declarada.
std::function<std::string()> parent(const std::string& value) {
return [value]() { return value; };
}
auto remember = parent("remembers me");
remember(); // "remembers me"Embora value pareça ter desaparecido depois que parent retorna, a função retornada ainda se lembra do seu valor.
- Corrija a função
greetingMakerfornecida para que ela retorne uma função que se lembre da saudação fornecida. - Quando essa função retornada recebe um nome, ela retorna
"salutation, name".
Exemplo
auto greeting = greetingMaker("Hello");
greeting("James"); // "Hello, James"Observações
Consulte a aba Recursos para saber mais sobre closures.