Adaptado partes de codigo a C++11 como por ejemplo 'range based for loops' y tipos 'auto' para mejorar su verbosidad