C++ · Essencial · Português · Técnico
expressão lambda
Função anônima escrita no ponto de uso, com a forma [capturas](parâmetros){corpo}. Pode capturar variáveis locais e é passada a algoritmos como sort e find_if.
Onde usar
Usada como comparador ou predicado em algoritmos da STL e em callbacks. Deixa a lógica junto de quem a usa, em vez de uma função separada.
Em código
std::vector<int> v{3, 1, 2};
std::sort(v.begin(), v.end(),
[](int a, int b) { return a > b; });
// v: 3 2 1Exemplos
Passei uma lambda como comparador do sort.
Essa lambda captura o contador por referência.
Cuidado
Cada lambda tem um tipo único e anônimo; para guardá-la com um tipo fixo usa-se auto ou std::function.
Sinônimos
função anônima
Origem
Do cálculo lambda, de Alonzo Church.