Specialisation de classe interne : refusé par le standard c++?
	
	
		Bonjour,
Le code ci-dessous fonctionne sous visual studio (2008,2010). J'accède à un membre privé depuis l'exterieur du code source d'une classe.
Par ailleurs, il est certain dans le standard que les classes internes ont accès aux membres privés d'une classe (ex: permet de faire les foncteurs internes aux fonctions).
A partir de là, il semblerait logique d'accéder depuis l'extérieur aux membres privés d'une classe, en utilisant une spécialisation de template.
Manque de pot, on me dit que c'est pas du c++ légal. J'aimerai savoir ce qui est issu du standard c++ et justifie ce point de vue.
	Code:
	
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   |  
class ClassA
{
public:
   template <class T>
    class NestedClass{};
 
private:
    int hiddenValue;
};
 
// I am now outside ClassA source code, and I will grant myself access to hiddenValue.
template <>
class ClassA::NestedClass<float>
{
public:
   void changeIt(ClassA& p){  p.hiddenValue = 6;}
};
 
int main()
{
	ClassA a;
	ClassA::NestedClass<float> b;
	b.changeIt(a);
	return 0;
} | 
 A vos avis éclairés,
ElPedro