Spécialisation de template
	
	
		Ce code ci-dessous compile sans problème.
	Code:
	
| 12
 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:
	
| 12
 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