Spécialisation de template
Ce code ci-dessous compile sans problème.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
template< class T >
struct mystruct
{
enum { value = 0 };
};
template<> struct mystruct< int > { enum { value = 1 }; };
int main(int argc, char *argv[])
{
return 0;
} |
Alors que celui-ci renvoie ceci avec g++:
template.cpp:10: erreur: explicit specialization in non-namespace scope «class mycl»
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| class mycl
{
template< class T >
struct mystruct
{
enum { value = 0 };
};
template<> struct mystruct< int > { enum { value = 1 }; }; // Probleme
};
int main(int argc, char *argv[])
{
return 0;
} |
Je suis largué. J'ai cherché un peu dans le forum. J'ai trouvé des sujets liés mais j'arrive pas à comprendre.
http://www.developpez.net/forums/sho...late+namespace
http://www.developpez.net/forums/sho...late+namespace
http://www.developpez.net/forums/sho...late+namespace
http://www.developpez.net/forums/sho...ation+template
http://www.developpez.net/forums/sho...ation+template