blob: 0fe0067bf23c410d0890ccf366f84964a9096e9b [file] [log] [blame]
Richard Smith32952e12014-10-14 02:00:47 +00001struct X {
2 int v;
3 typedef int t;
4};
5
6struct YA {
7 int value;
8 typedef int type;
9};
10
11template<typename T> struct C : X, T {
12 using T::value;
13 using typename T::type;
14 using X::v;
15 using typename X::t;
16};
17
18template<typename T> struct D : X, T {
19 using T::value;
20 using typename T::type;
21 using X::v;
22 using typename X::t;
23};
24
25template<typename T> struct E : X, T {
26 using T::value;
27 using typename T::type;
28 using X::v;
29 using typename X::t;
30};
31
32template<typename T> struct F : X, T {
33 using T::value;
34 using typename T::type;
35 using X::v;
36 using typename X::t;
37};
38
39// Force instantiation.
40typedef C<YA>::type I;
41typedef D<YA>::type I;
42typedef E<YA>::type I;
43typedef F<YA>::type I;