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, но в моем случае это не имеет смысла.