1 // PRMS Id: 11420 2 // Bug: Can't handle indirect virtual template base init. 3 4 extern "C" int printf (const char *, ...); 5 6 template<class T> 7 class Vbase { 8 public: Vbase(T i)9 Vbase(T i) { printf ("%d\n", i); } 10 }; 11 12 template<class T> 13 class D1 : virtual public Vbase<T> { 14 public: D1(T i)15 D1(T i) : Vbase<T>(i) {} 16 }; 17 18 template<class T> 19 class D2 : virtual public Vbase<T> { 20 public: D2(T i)21 D2(T i) : Vbase<T>(i) {} 22 }; 23 24 template<class T> 25 class Most : public D1<T>, public D2<T> { 26 public: Most(T i)27 Most(T i) : D1<T>(i), D2<T>(i), Vbase<T>(i) {} 28 }; 29 main()30int main () { 31 Most<int> x(2); 32 return 0; 33 } 34