Pude regenerar el problema para hacerlo más entendible en dev-c++, con código y corto:
BoardBase.h
Código C++:
Ver originaltemplate<class T>
class BoardBase
{
T value;
public:
void print();
};
BoardBase.cpp
Código C++:
Ver original#include "BoardBase.h"
#include <iostream>
template<class T> void BoardBase<T>::print()
{
cout << "Probando print" << endl;
}
Board.h
Código C++:
Ver original#include "BoardBase.h"
class Board : public BoardBase<int>
{
public:
void printDerived();
};
Board.cpp
Código C++:
Ver original#include "Board.h"
#include <iostream>
void Board::printDerived()
{
cout << "Probando printDerived" << endl;
}
Si en el main llamo a printDerived() todo funciona correctamente. Sin embargo, si llamo a print(), ahora en Dev-C++, me sale el error
[Linker error] undefined reference to `BoardBase<int>::print(void)' . Si bien los mensajes no son iguales, el error es equivalente al que obtengo en el compilador para iPhone.