Ich benötige eine Vorlage spezialisierte Klasse, um friend
mit einer anderen Vorlage spezialisierten Klasse zu machen.Wie mache ich einen Freund einer teilweise spezialisierten Vorlagenklasse zu einer anderen teilweise spezialisierten Vorlagenklasse?
Beispiel:
template <class A, class B>
class X { };
template <class A, class B>
class Y { };
Jetzt möchte ich nur einige spezifische Spezialisierungen dieser Template-Klassen haben, Freunde zu sein:
I
versuchttemplate <class A>
class X <A, bool> { };
template <class A>
class Y <A, bool>
{
// X<A, bool> shall be friend!
template<class _C> using X_partial = X<_C,bool>;
template<class _D> friend class X_partial;
};
und dieses,
template <class A>
class X <A, bool> { };
template <class A>
class Y <A, bool>
{
// X<A, bool> shall be friend!
template<class C> friend class X<class C,bool>
};
Aber beide gibt den Fehler.
Die Syntax kann C++ (03), C++ 11 oder C++ 14 unterstützen.
Klassen sind Vorlage Klasse X {}; –
Zweite Klasse ist Vorlage Klasse y {}; Und ich möchte, wie man Klasse ya Freund der Klasse X macht. –
Bitte werfen Sie einen Blick auf [wie man eine gute Frage stellt] (https://stackoverflow.com/help/how-to-ask) und [mcve] (https : //stackoverflow.com/help/mcve). Fügen Sie den Code von dem, was Sie bisher versucht haben, hinzu und fügen Sie ihn in der Frage hinzu, nicht als Kommentar. – Aconcagua