So che un typedef non può essere inoltrato in C++, ma mi chiedo quale potrebbe essere la soluzione migliore per il seguente problema. Ho un file di intestazione che dichiara MyClass
come questo:Inoltro che dichiara un typedef per una classe modello
#include <TemplateClassHeaders>
struct MyStruct
{
// ...
}
typedef Really::Long::TemplateClassName<MyStruct> MyClass;
MyClass
è utilizzato in molti luoghi, ma per lo più solo come un puntatore di essere passato attraverso il meccanismo del segnale slot Qt. Una dichiarazione in avanti sarebbe tutto ciò che è necessario, ma dal momento che MyClass
è un typedef che non funzionerà. C'è un modo per evitare di aggiungere myclass.h a ogni intestazione che utilizza un puntatore a MyClass
?
'class MyClass;' Google, o anche guardando i suggerite SO link mentre si sta digitando la vostra domanda, dovrebbe rivelare http://stackoverflow.com/questions/804894/forward-declaration-of-a -typedef-in-c? rq = 1 – mah
@mah Dandogli un secondo pensiero o almeno leggendo l'intera domanda invece di ridiscutere automaticamente e indirizzarmi a una domanda simile (senza template e argomenti di template) ti rivelerò che 'classe MyClass' non funzionerà (e non funzionerebbe anche se non sono stati coinvolti modelli, a causa della redeclaration). – jaho
@Marian, 'classe MyClass;' funzionerebbe se non fossero coinvolti modelli. –