g++
отказывает мне в доступе к типу, просто потому, что он является частным дедушкой. Это имеет смысл?
struct A {};
struct B : private A {};
struct C : B {
void foo(A const& a) {}
};
При компиляции это дает:
1:10: error: ‘struct A A::A’ is inaccessible
6:12: error: within this context
Моя точка зрения: я никогда не хотел получить доступ к A
как к предку. На самом деле, если A
является частным предком B
, не должно ли это быть полностью невидимым для кого-либо, кроме B
(т.е. C
)?
Конечно, я мог бы использовать наследование protected
, но в моем случае это не имеет смысла.