Utilizzando typedef da una classe template in un modello di funzione (non membro)
-
19-09-2019 - |
Domanda
Di seguito fallisce la compilazione (con gcc 4.2.1 su Linux, comunque):
template< typename T >
class Foo
{
public:
typedef int FooType;
};
void
ordinary()
{
Foo< int >::FooType bar = 0;
}
template< typename T >
void
templated()
{
Foo< T >::FooType bar = T( 0 );
}
int main( int argc, char **argv )
{
return 0;
}
Il problema è con questa linea:
Foo< T >::FooType bar = 0;
... e il compilatore fa questa denuncia:
foo.c: In funzione ‘vuoto su modelli ()’:
foo.c: 22: Errore: atteso `;' prima di ‘bar’
Normalmente si vede questo, quando un tipo non è stato dichiarato, ma per quanto ne so, Foo
Soluzione
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow