1 class A
2 {
3 public:
4     typedef int T;
5     int a;
6 };
7 
8 class B : virtual private A
9 {
10 };
11 
12 class C : virtual private A, public B
13 {
14 public:
15     using A::a;
16     using A::T;
17 };
18 
19 C::T x;
20