Me pregunto si el nuevo C++ (que se llama C++11) funciona bien con la electrónica embebida y su programación. ¿Las nuevas características encajan bien si se trabaja con uC? ¿Como los valores R y demás? ¿O debería restringirse con el tradicional y antiguo C++?
Respuesta
¿Demasiados anuncios?No es C++11 o C++ antiguo, al igual que no es sólo C o C++ con todas sus características. Me encanta usar C++, pero detesto algunos aspectos específicos del mismo. (Esto no es específico de C++, aunque hay lenguajes que odio sin excepción). Toma las partes buenas (después de comprobar que están decentemente implementadas), deja el resto para otros o para más adelante.
Todavía no he utilizado los aspectos específicos de C++11 (mis clases de este trimestre son de C++ en NDS utilizando devkitPro, que tiene un gcc antiguo). Pero una característica simple que espero es la variable auto tipada. Supongamos que quieres construir diferentes tipos de objetos (todas las subclases de una clase base), dependiendo de los tipos de los parámetros del 'constructor'. No puedes sobrecargar constructores de diferentes clases, pero puedes sobrecargar varias funciones que devuelven diferentes tipos de clases. Pero para almacenar los resultados, debes recordar el tipo exacto que devuelven (lo que estropea el patrón de fábrica OMI) o hacer que todos devuelvan un puntero al tipo de la clase base (lo que arrastra la gestión de la pila en tu aplicación, lo que intento evitar). Con la función automática puedes hacer
a_very_long_and_difficult_to_remember_class f( int x );
an_equaly_difficult_to_remember_class f( char *p );
auto x = f( 12 );
auto y = f( "hello" );
Para mí esto significa que un patrón atractivo es de repente muy fácil de usar.