Невозможно получить доступ к защищенному члену базового класса в производном классе

У меня есть следующий код:

struct A {
protected:
    A() {}

    A* a;
};

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

    A b;
};

Это странно нет компилировать. Виновником являетсяb.a = &b; назначение: и GCC, и Clang жалуются, чтоA() защищен, который не долженЭто не проблема, потому что B наследует A. В какой темный угол стандарта я вступил?

Ответы на вопрос(4)

Ваш ответ на вопрос