Perguntas com a marcação «lambda»

93
O que significa [=] em C ++?

Eu quero saber o que [=]faz? Aqui está um pequeno exemplo template <typename T> std::function<T (T)> makeConverter(T factor, T offset) { return [=] (T input) -> T { return (offset + input) * factor; }; } auto milesToKm = makeConverter(1.60936, 0.0); Como o código funcionaria em...

92
Implementação de lambda C ++ 11 e modelo de memória

Gostaria de obter algumas informações sobre como pensar corretamente sobre encerramentos de C ++ 11 e std::functionem termos de como eles são implementados e como a memória é tratada. Embora eu não acredite em otimização prematura, tenho o hábito de considerar cuidadosamente o impacto de minhas...

92
_ (sublinhado) é uma palavra-chave reservada

Acabei de substituir sa seguinte expressão lambda por _: s -> Integer.parseInt(s) O compilador Eclipse diz: '_' não deve ser usado como um identificador, uma vez que é uma palavra-chave reservada do nível de origem 1.8 em diante. Eu não encontrei nenhuma explicação em JLS §3.9...

90
Como retornar valor com método anônimo?

Isso falha string temp = () => {return "test";}; com o erro Não é possível converter a expressão lambda para o tipo 'string' porque não é um tipo delegado O que significa o erro e como posso resolvê-lo?

89
Alguma razão para não usar lambdas globais?

Tínhamos uma função que usava um lambda não captador interno para si mesmo, por exemplo: void foo() { auto bar = [](int a, int b){ return a + b; } // code using bar(x,y) a bunch of times } Agora, a funcionalidade implementada pelo lambda tornou-se necessária em outro lugar, por isso vou elevar...

89
O que é uma língua lambda?

Eu estava lendo "JavaScript: The Good Parts" e o autor menciona que JavaScript é a primeira das linguagens lambda a ser lançada. As funções do JavaScript são objetos de primeira classe com escopo (principalmente) léxico. JavaScript é o primeiro linguagem lambda a se tornar mainstream. No...

89
Por que um lambda tem o tamanho de 1 byte?

Estou trabalhando com a memória de alguns lambdas em C ++, mas estou um pouco confuso com o tamanho deles. Aqui está meu código de teste: #include <iostream> #include <string> int main() { auto f = [](){ return 17; }; std::cout << f() << std::endl; std::cout...

88
Função que retorna uma expressão lambda

Gostaria de saber se é possível escrever uma função que retorna uma função lambda em C ++ 11. Claro, um problema é como declarar tal função. Cada lambda tem um tipo, mas esse tipo não pode ser expresso em C ++. Eu não acho que isso funcionaria: auto retFun() -> decltype ([](int x) ->...

87
Tarefa.Run com parâmetro (s)?

Estou trabalhando em um projeto de rede multitarefa e sou novo Threading.Tasks. Implementei um simples Task.Factory.StartNew()e gostaria de saber como posso fazer isso Task.Run()? Aqui está o código básico: Task.Factory.StartNew(new Action<object>( (x) => { // Do something with...