Próbuję uzyskać dostęp do chronionych zmiennych klasy szablonu z różnymi parametrami szablonu. Oświadczenie przyjaciel z parametrów szablonu daje następujący błąd:Szablon przyjaźni
wiele list parametrów szablonu nie są dozwolone
Mój kod jest
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;
};
Jeśli usunąć deklarację ochrony i przyjaciela to działa.
MyClass jest jej przyjacielem? – AraK
MyClass nie jest tą samą klasą co MyClass dlatego nie może uzyskać dostępu do swoich chronionych zmiennych. –
AraK nie ma "MyClass" jako takiego. –