Estoy tratando de implementar una función miembro con plantilla de C ++ en Arduino 0022, pero obtengo un error en el código que me parece correcto.
// in Settings.h
template <class T> void save( T variable );
// in Settings.cpp
template <class T> void Settings::save( T variable ) {
Serial.println("Want to save a variable of size " + String( sizeof(T) ) );
};
// salida del compilador (enlazador) TimeMachineArduino.cpp.o: en la función
SimpleScreen::left()
:SimpleScreen.h: 85: referencia no definida a
void Settings::save<int>(int)
SimpleScreen.h: 86: referencia no definida a
void Settings::save<double>(double)
SimpleScreen.h: 87: referencia no definida a
void Settings::save<char>(char)
La función SimpleScreen::left()
es donde estoy instanciando implícitamente las funciones de la plantilla (al llamar guardar en un int, double y char).