He estado utilizando construcciones C++ más "modernas" por un tiempo, pero superficialmente y no en todas partes. Estoy buscando proyectos de código abierto para estudiar que son buenos ejemplos del uso moderno de C++ y STL.Ejemplos de "C++ moderno" en acción?
Cosas como las que se sugieren en "Effective STL" de Meyer, como tratar de evitar los bucles for
y reemplazarlos por construcciones más funcionales, usando boost :: bind y boost :: function, etc. Estos aún se sienten un poco antinaturales para mí, y cuando tengo que hacer algo rápido y trabajando, tiendo a volver a libc y string.h (puedes agarrar mi strtok cuando lo levantas de mis manos frías y muertas).
Sin embargo, también he tenido la experiencia positiva de encontrar lo que sería un cambio drástico simplificado porque he usado estos constructos, o puedo implementar algo con unas pocas líneas de código, porque tenía el derecho operadores y funtores por ahí. Además, recientemente he estado prestando más atención a la concurrencia, por lo que esto se está volviendo aún más importante para mí.
¿Puede recomendar algunos ejemplos de proyectos de código abierto bien escritos que hacen un uso intensivo de la STL y otras técnicas modernas de C++ que podría estudiar? Estoy particularmente interesado en el código de la aplicación, explorar las fuentes de Boost ha sido útil, pero es por necesidad muy general porque es un código de biblioteca.
Me interesan los proyectos de tamaño mediano a grande, al menos algunas decenas de miles de líneas. Es bastante fácil encontrar ejemplos que tienen cientos de líneas, pero eso no es demasiado útil.
¿Puedo quita tu strtok() pero dale strtok_r() a cambio? Es seguro para subprocesos y reentrante. –
Renuncié a strtok cuando escribí una clase de tokenizer que devolvía un const_iterator de su método begin() para permitirme repetir los tokens. –
Boost's String Algo, Regex, Spirit, Xpressive (e incluso Tokenizer si tienes mala suerte) comerán 'strok()' alive. :) – jfs