Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: SrCooper en 17 Enero 2014, 20:39 pm



Título: Duda sobre las expresiones lambda en C++11
Publicado por: SrCooper en 17 Enero 2014, 20:39 pm
Buenos días a todos, estoy siguiendo un tutorial para C++11 y me he topado con las expresiones lambda, las cuales no entiendo en aboluto  :P
Este es el código:
Código
  1. auto found = std::find_if(mChildren.begin(), mChildren.end(),
  2.                              [&] (Ptr& p)->bool{return p.get() == &node; }); //Aqui esta la maldita xDD

El principio lo comprendo todo, pero cuando llego al tercer argumento de std::find_if literalmente me pierdo. Agradecería si alguien me pudiera explicar paso a paso lo que significa cada cosa, porque los tutoriales que he visto no los entiendo tampoco.

Un saludo y gracias de antemano.


Título: Re: Duda sobre las expresiones lambda en C++11
Publicado por: ivancea96 en 17 Enero 2014, 20:54 pm
http://www.cprogramming.com/c++11/c++11-lambda-closures.html (http://www.cprogramming.com/c++11/c++11-lambda-closures.html)


Título: Re: Duda sobre las expresiones lambda en C++11
Publicado por: amchacon en 17 Enero 2014, 21:01 pm
El primer parametro es el inicio, el segundo el final y el tercero es un puntero a la función que vas a usar para hacer las comparaciones.

Lo que pasa esque declarar una función aparte para luego no usarla nunca más... Las funciones lambda permiten declarar esas funciones "inline", ahorrandote escritura y espacio.


Título: Re: Duda sobre las expresiones lambda en C++11
Publicado por: SrCooper en 18 Enero 2014, 00:41 am
Voy a necesitar un tiempo para entenderlo todo bien, aunque el artículo es muy bueno, muchas gracias :D

Un saludo y gracias por todo