Template-Struktur/Klassen-Deklaration als Freund
Bei der C-Programmierung kann es vorkommen, dass eine Template-Struktur oder -Klasse als Freund deklariert wird gewünscht. Wenn Sie jedoch den folgenden allgemeinen Ansatz versuchen, melden einige Compiler, wie z. B. Visual C 8 (VC8), Fehler:
template <typename T> struct foo { template <typename S> friend struct foo<S>; };
Der Grund für diesen Fehler ist, dass der Compiler nicht in der Lage ist, mehrere Vorlagenparameterlisten in einem zu verarbeiten einzelne Zeile. Um dieses Hindernis zu überwinden, wird eine alternative Syntax eingeführt:
template <typename> friend class foo;
Durch Angabe einer leeren Vorlagenparameterliste gilt die Friend-Deklaration nun für alle potenziellen Instanziierungen der vorlagenbasierten Struktur oder Klasse. Es ist jedoch erwähnenswert, dass durch diesen Ansatz alle Vorlagen miteinander befreundet werden. Beispielsweise foo
Das obige ist der detaillierte Inhalt vonWie deklariere ich eine Template-Struktur als Freund in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!