J'essaye d'accéder aux variables protégées d'une classe de modèle avec différents paramètres de modèle. Une déclaration d'ami avec des paramètres de modèle donne l'erreur suivante:Amitié de modèle
plusieurs listes de paramètres de modèle ne sont pas autorisés
Mon code est
template<class O_, class P_>
class MyClass {
//multiple template parameter lists are not allowed
template<class R_> friend class MyClass<R_, P_>
//syntax error: template<
friend template<class R_> class MyClass<R_, P_>
public:
template<class R_>
ACopyConstructor(MyClass<R_, P_> &myclass) :
SomeVariable(myclass.SomeVariable)
{ }
protected:
O_ SomeVariable;
};
Si je supprime la protection et la déclaration ami cela fonctionne.
MyClass est un ami de lui-même? !! – AraK
MyClass n'est pas la même classe que MyClass par conséquent, il ne peut pas accéder à ses variables protégées. –
AraK il n'y a pas de MyClass en tant que tel. –