C++ · Intermediário · Inglês · Técnico
std function
Invólucro polimórfico da biblioteca padrão que guarda qualquer objeto chamável com uma assinatura dada, como função, lambda ou functor. Permite armazenar callbacks com tipo fixo.
Onde usar
Usado em callbacks, tabelas de comandos e eventos, quando o tipo concreto não importa. Tem custo de indireção e possível alocação, então nem sempre serve em laços quentes.
Em código
std::function<int(int)> f = [](int x) {
return x * 2;
};
std::cout << f(4); // 8Exemplos
Store the callback in a std function member.
Guarde o callback em um membro std function.
Calling an empty std function throws.
Chamar um std function vazio lança exceção.
Cuidado
Não é lambda nem ponteiro de função; é um contêiner de chamáveis, e chamar um std::function vazio lança bad_function_call.
Sinônimos
callback