ExpertiDict

C++ · Essencial · Português · Técnico

expressão lambda

ispɾeˈsɐ̃w̃ ˈlɐ̃bdɐsubstantivo

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 1

Exemplos

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.

Veja também

Todos os termos de C++