Gracias! Es un poco lo que había pensado aunque...
Entiendo por vuestras respuestas que es imposible hacer que las "Chains" tengan Genes con el "value" de cualquier tipo indefinido. Tiene que ser siempre especificado en la creación del vector, como por ejemplo:
Código:
typedef vector<Gen<int> > Chain;
Vamos, no se puede hacer nada parecido que con Java, en el que podría usar Object.
EDITO -> Igual podría utilizar una "union" que contenga todos los tipos de datos que puede tomar General, pasar de los templates, y usar un discriminador dentro de la "union" para indicar a qué tipo de datos pertenece un valor. Algo así:
Código:
enum eGeneral { i, b, f, d, c };
struct General {
eGeneral type;
union {
int iValue;
bool bValue;
float fValue;
double dValue;
char cValue;
};
};
struct Gen {
string name;
General value;
};
typedef vector<Gen> Chain;
class Genoma {
protected:
Chain genotype[2];
public:
Genoma();
};