Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/10/2012, 11:15
ShotoReaper
 
Fecha de Ingreso: septiembre-2012
Mensajes: 38
Antigüedad: 12 años, 2 meses
Puntos: 0
Problemas de uso de std::for_each

Buenas!
He intentado usar un std::for_each para iterar a traves de los elementos de un list. El problemas es que no consigo que funcione.
Este es el código:

Código:
void GameScreen::Draw(void)
{
    std::for_each(
                  components.begin(),
                  components.end(),
                  myfunction
                  );
}

void myfunction(Component cpt)
{
    if(cpt.IsVisible)
        cpt.Draw();
}
Y este el error que me da:

error: argument of type 'void (GameScreen::)(Component)' does not match 'void (GameScreen::*)(Component)'

También intente hacerlo con una función lambda:

Código:
void GameScreen::Draw(void)
{
    std::for_each(
                  components.begin(),
                  components.end(),
                  [](Component cpt)
                  {
                      if(cpt.IsVisible)
                        cpt.Draw();
                  }
                  );
}
Pero en este caso me devuelve estos errores:

error: expected primary-expression before '[' token
error: expected primary-expression before ']' token
error: expected primary-expression before 'cpt'


¿ Alguna idea ?