Warum erlaubt GCC nicht, von einer privaten geschachtelten Klasse zu erben, wenn Sie ein Freund sind?

8

Es wird die gleiche Frage gestellt: Warum erlaubt GCC das Erben von einer privaten geschachtelten Klasse? Für Nicht-Template-Klassen darf es von privaten verschachtelten Klassen erben wenn es ein Freund ist, aber nicht für Vorlagenklassen. Ist es ein Fehler?

%Vor%

Fehlermeldung von g ++ 5.3.0:

%Vor%     
gerdi 27.05.2016, 15:46
quelle

1 Antwort

5

Dies ist definitiv ein gcc-Fehler. gcc hat viele Probleme mit Freundschaften und Vorlagen. Dieses Beispiel erscheint fast genau im Standard, unter [class.friend], Hervorhebung meins:

  

Wenn eine Klasse als Freund deklariert wird, bedeutet dies, dass die Namen von privaten und geschützten Mitgliedern aus der Klasse stammen   Das Gewähren von Freundschaft kann in base-specifiers und Memberdeklarationen der befreundeten Klasse aufgerufen werden.
[Beispiel:

%Vor%      

-endebeispiel]

    
Barry 27.05.2016 16:06
quelle