Una de las cosas que simplemente hace que evite escribir algoritmos básicos en C ++ 11 es la disponibilidad de lambdas en combinación con los algoritmos proporcionados por la biblioteca estándar.
Los estoy usando ahora y es increíble la frecuencia con la que dices lo que quieres hacer usando count_if (), for_each () u otros algoritmos en lugar de tener que volver a escribir los malditos bucles.
Una vez que está utilizando un compilador de C ++ 11 con una biblioteca estándar completa de C ++ 11, ya no tiene una buena excusa para no usar algoritmos estándar para construir su propio . Lambda acaba de matarlo.
¿Por qué?
En la práctica (después de haber utilizado esta forma de escribir algoritmos yo mismo), es mucho más fácil leer algo que está construido con palabras sencillas que significan lo que se hace que con algunos bucles que hay que descifrar para saber el significado. Dicho esto, hacer que los argumentos lambda se deduzcan automáticamente ayudaría mucho a que la sintaxis sea más fácilmente comparable a un bucle sin formato.
Básicamente, los algoritmos de lectura hechos con algoritmos estándar son mucho más fáciles ya que las palabras ocultan los detalles de implementación de los bucles.
Supongo que solo debemos pensar en algoritmos de nivel superior ahora que tenemos algoritmos de nivel inferior para construir.