Zugriff auf geschütztes Mitglied der Basisklasse in abgeleiteter Klasse nicht möglich

Ich habe folgenden Code:

struct A {
protected:
    A() {}

    A* a;
};

struct B : A {
protected:
    B() { b.a = &b; }

    A b;
};

Es kompiliert seltsamerweise nicht. Der Täter ist derb.a = &b; Aufgabe: Sowohl GCC als auch Clang beschweren sich darüberA() ist geschützt, was kein Problem sein sollte, da B A erbt. In welche dunkle Ecke des Standards bin ich gekommen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage