Utilisation typedefs à partir d'une classe de modèle dans une fonction modèle (non-membres)
-
19-09-2019 - |
Question
Ce qui suit ne peut pas compiler (avec gcc 4.2.1 sur Linux, de toute façon):
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;
}
Le problème est avec cette ligne:
Foo< T >::FooType bar = 0;
... et le compilateur fait cette plainte:
foo.c: En fonction «vide sur matrice ():
foo.c: 22: erreur: attendu '; » avant « bar »
Normalement, on voit quand un type n'a pas été déclarée, mais pour autant que je peux dire, Foo
La solution
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow