Esta pregunta es una cuestión de estilo, ya que siempre puede escribir un bucle for o algo similar; sin embargo, ¿existe un STL o BOOST menos molesto equivalente a la escritura?Función de miembro de llamada en cada elemento en un contenedor
for (container<type>::iterator iter = cointainer.begin();
iter != cointainer.end();
iter++)
iter->func();
?
Algo así como (imaginaria) esto:
call_for_each(container.begin(), container.end(), &Type::func);
creo que sería 1) escribir menos, 2) fácil de leer, 3) menos cambios Si ha decidido cambiar el tipo de base de tipo/contenedor.
EDIT: Gracias por su ayuda, ahora, ¿y si quisiera pasar algunos argumentos a la función miembro?
+1 porque me ganaste 5 minutos con esa respuesta de enlace: p (oh, std :: mem_fun_ref es una porquería cuando se usa con argumentos enlazados!) –
+1, para resolver esto sin ti solo y para usar Boost. ¡Aclamaciones! – dirkgently
lo que quiero decir es cuando tienes referencia-a-referencias cuando tienes la función miembro tiene un parámetro de referencia. boost :: bind lo resuelve muy bien :) –