Este libro corresponde a un curso de programación genérica y abstracción. Se desarrolla en el contexto del lenguaje C++, suponiendo que se tienen conocimientos básicos de creación de clases en C++98, sin incluir herencia o polimorfismo. El desarrollo gradual permite ir introduciendo conceptos avanzados de C++14, terminando con un nivel de programación que alcanza conceptos de metaprogramación.
Los contenidos abarcan temas que incluyen el encapsulamiento con clases, la generalización con plantillas, la abstracción por iteración, los algoritmos genéricos y la STL. En el estudio de la biblioteca estándar se incluye una discusión razonada sobre los contenedores, relacionando las estructuras de datos con la interfaz de uso. Se estudian los algoritmos genéricos, así como los distintos objetos llamables que pueden usarse en ellos, sin olvidar las últimas aportaciones en la definición de funciones, objetos función y objetos lambda.
El enfoque de la exposición está orientado a la docencia y el estudio autodidacta; junto con las discusiones aparecen ejercicios propuestos y resueltos. El objetivo final es que el estudiante sea capaz de entender el porqué, evitando entrar en revisiones exhaustivas del lenguaje que pueden ser fácilmente consultadas en las referencias. Como consecuencia, al estudiante le será más fácil leer y entender libros avanzados de programación y metaprogramación sobre el último estándar de C++.