ciao.
Ho due classi di configurazione : Pippo e Pluto.
Ho una calsse da configurare MyClass che accetta come parametro template Pippo o Pluto e prende i valori da una di queste e si configura.

per es semplificando:
codice:
class Pippo :
	public CimporterBase {
public:
	Pippo(){
	
	};
	struct SubType{
		static int n1;
		static int n2;
	};
};
e la classe da configurare:
template <typename T>
class MyClass : CimporterBaseT{
public:
	
	MyClass(){nValue = 2;};
	typename T::SubType * ptr;
};
se
MyClass<Pippo>
la classe da configurare(MyClass) avra una struttura
struct SubType{
static int n1;
static int n2;
};
mentre se utilizzero pluto avro un altra struttura.
Ho una funzione in un altra classe che agisce da factory e dovrebbe ritornare o una classe Pippo o Pluto o una MyClass configurata co pippo o pluto.

per fare questo l'unico modo che conosco è fare ereditare il template da una classe astratta non template.

1)Il problema è che quando assegno alla classe base senza template una classe ad es pippo o pluto e la ritorno perdo "il tipo" che mi servirebbe per configurare MyClass.

2)se configuro MyType all' interno della funzione con una classe Pippo o Pluto quando ritorno la classe base di MyClass perdo anche qui il tipo e non riesco a prendere la struttura SubType perchè nella classe CimporterBase non c'è, perchè la classe è generica