1*67e74705SXin Li//-*- C++ -*- 2*67e74705SXin Li 3*67e74705SXin Li// Intended to exercise all syntactic parts of the C++ language that 4*67e74705SXin Li// aren't part of C. 5*67e74705SXin Li 6*67e74705SXin Linamespace std { 7*67e74705SXin Li namespace debug { 8*67e74705SXin Li } 9*67e74705SXin Li} 10*67e74705SXin Li 11*67e74705SXin Liusing namespace std::debug; 12*67e74705SXin Liusing namespace std; 13*67e74705SXin Li 14*67e74705SXin Linamespace safestl = ::std::debug; 15*67e74705SXin Li 16*67e74705SXin Liclass Base1 { 17*67e74705SXin Li}; 18*67e74705SXin Li 19*67e74705SXin Liclass Base2 { }; 20*67e74705SXin Li 21*67e74705SXin Liclass Derived1 : Base1, virtual public Base2 { }; 22*67e74705SXin Li 23*67e74705SXin Li/* Template classes, template functions */ 24*67e74705SXin Lienum E1 { EC1 }; 25*67e74705SXin Litemplate <E1 v> class C1 {}; 26*67e74705SXin Litemplate <E1 v> C1<v> f1() { return C1<v>(); } 27*67e74705SXin Livoid f2() { f1<EC1>(); } 28