1@import templates_top; 2 3template<typename T> class Vector { 4public: 5 void push_back(const T&); 6}; 7 8template<typename T> class List; 9template<> class List<bool> { 10public: 11 void push_back(int); 12}; 13 14namespace N { 15 template<typename T> class Set { 16 public: 17 void insert(T); 18 }; 19} 20 21constexpr unsigned List<int>::*size_right = &List<int>::size; 22List<int> list_right = { 0, 12 }; 23typedef List<int> ListInt_right; 24 25template <typename T> 26void pendingInstantiationEmit(T) {} 27void triggerPendingInstantiationToo() { 28 pendingInstantiationEmit(12); 29} 30 31void redeclDefinitionEmit(){} 32 33typedef Outer<int>::Inner OuterIntInner_right; 34 35int defineListDoubleRight() { 36 List<double> ld; 37 ld.push_back(0.0); 38 return ld.size; 39} 40 41inline void defineListLongRight() { 42 List<long> ll; 43} 44 45template<typename T> struct MergePatternDecl; 46 47void outOfLineInlineUseRightF(void (OutOfLineInline<int>::*)() = &OutOfLineInline<int>::f); 48void outOfLineInlineUseRightG(void (OutOfLineInline<int>::*)() = &OutOfLineInline<int>::g); 49void outOfLineInlineUseRightH(void (OutOfLineInline<int>::*)() = &OutOfLineInline<int>::h); 50 51inline int *getStaticDataMemberRight() { 52 return WithUndefinedStaticDataMember<int[]>::undefined; 53} 54