Eu recebo muito essa pergunta e pensei em solicitar algumas sugestões sobre a melhor forma de descrever a diferença.
Eu recebo muito essa pergunta e pensei em solicitar algumas sugestões sobre a melhor forma de descrever a diferença.
Acabo de aprender sobre indicadores de função e, enquanto lia o capítulo K&R sobre o assunto, a primeira coisa que me atingiu foi: "Ei, isso é meio que um encerramento." Eu sabia que essa suposição estava fundamentalmente errada de alguma forma e, após uma pesquisa online, não encontrei...
Estou tentando usar Ruby 1.9.1 para uma linguagem de script incorporada, de modo que o código do "usuário final" seja escrito em um bloco Ruby. Um problema com isso é que eu gostaria que os usuários pudessem usar a palavra-chave 'return' nos blocos, para que não precisassem se preocupar com...
O seguinte código Java falha ao compilar: @FunctionalInterface private interface BiConsumer<A, B> { void accept(A a, B b); } private static void takeBiConsumer(BiConsumer<String, String> bc) { } public static void main(String[] args) { takeBiConsumer((String s1, String s2) ->...
Estou tentando descobrir como obter o endereço de uma função lambda dentro de si. Aqui está um código de exemplo: []() { std::cout << "Address of this lambda function is => " << ???? }(); Eu sei que posso capturar o lambda em uma variável e imprimir o endereço, mas quero fazê-lo...
A referência do método usado possui tipo de retorno Integer. Mas um incompatível Stringé permitido no exemplo a seguir. Como corrigir a withdeclaração do método para obter o tipo de referência do método seguro sem transmitir manualmente? import java.util.function.Function; public class...
É possível declarar uma função lambda e chamá-la imediatamente: Func<int, int> lambda = (input) => { return 1; }; int output = lambda(0); Gostaria de saber se é possível fazê-lo em uma linha, por exemplo, algo como int output = (input) => { return 1; }(0); que fornece um erro do...
Eu não entendo este caso: public delegate int test(int i); public test Success() { Func<int, int> f = x => x; return f.Invoke; // <- code successfully compiled } public test Fail() { Func<int, int> f = x => x; return f; // <- code doesn't compile } Por que a...
Os exemplos que eu descobri que a captura thisem um lambda a usam explicitamente; por exemplo: capturecomplete = [this](){this->calstage1done();}; Mas parece que também é possível usá-lo implicitamente; por exemplo: capturecomplete = [this](){calstage1done();}; Eu testei isso em g ++, e ele...
Escrevi recentemente algum código em que reutilizei involuntariamente um nome de variável como parâmetro de uma ação declarada em uma função que já possui uma variável com o mesmo nome. Por exemplo: var x = 1; Action<int> myAction = (x) => { Console.WriteLine(x); }; Quando vi a...
Descobri que os resultados são diferentes nos compiladores se eu usar um lambda para capturar uma referência à variável global com palavra-chave mutável e modificar o valor na função lambda. #include <stdio.h> #include <functional> int n = 100; std::function<int()> f() { int...
Encontrei este código no GitHub, mas não o entendi: #define lambda(ret_type, _body) ({ ret_type _ _body _; }) Então: int (*max)(int, int) = lambda(int, (int x, int y) { return x > y ? x : y; }); int max_value = max(1, 2); // max_value is 2 O que os sublinhados estão fazendo dentro do...
Descobri que os lvaluefechamentos lambda sempre podem ser passados como rvalueparâmetros de função. Veja a seguinte demonstração simples. #include <iostream> #include <functional> using namespace std; void foo(std::function<void()>&& t) { } int main() { // Case 1:...
Como sobrecarregar uma função lambda local simples? SSE do problema original: #include <iostream> #include <map> void read() { static std::string line; std::getline(std::cin, line); auto translate = [](int idx) { constexpr static int table[8]{ 7,6,5,4,3,2,1,0 }; return...
Porque é public <R, F extends Function<T, R>> Builder<T> withX(F getter, R returnValue) {...} mais rigoroso então public <R> Builder<T> with(Function<T, R> getter, R returnValue) {...} Este é um acompanhamento de Por que o tipo de retorno lambda não é...
Estou procurando uma maneira de identificar lambdas vazias (sem captura) de outras lambdas em uma função de modelo. Atualmente, estou usando C ++ 17, mas estou curioso para respostas C ++ 20 também. Meu código fica assim: template<typename T> auto func(T lambda) { // The aguments of the...
Eu estava respondendo uma pergunta e me deparei com um cenário que não consigo explicar. Considere este código: interface ConsumerOne<T> { void accept(T a); } interface CustomIterable<T> extends Iterable<T> { void forEach(ConsumerOne<? super T> c); //overload } class A...
Uma função sobrecarregada deve receber os dois functores, dado que o tipo de lambda é decidível (pode ser convertido em um std::function(por favor, me corrija se estiver errado) .A pergunta é: por que há um erro de compilação abaixo, apesar de o tipo lambda ser explicitamente definido? ( [&]()...
Alguma idéia de por que o snippet a seguir não é compilado? Ele reclama com o erro "error: operandos to?: Have different types" auto lambda1 = [&](T& arg) { ... }; auto lambda2 = [&](T& arg) { ... }; auto lambda = condition ? lambda1 :
Estou enfrentando problemas com a referência de método combinada com tipos genéricos. Temos um código no qual precisamos chamar um método sobrecarregado, mas está falhando com erro: Não é possível resolver o valor m1 () Simplifiquei meu problema para deixar claro onde está o problema. O...