@import templates_top; template class Vector { public: void push_back(const T&); }; template class List; template<> class List { public: void push_back(int); }; namespace N { template class Set { public: void insert(T); }; } constexpr unsigned List::*size_right = &List::size; List list_right = { 0, 12 }; typedef List ListInt_right; template void pendingInstantiationEmit(T) {} void triggerPendingInstantiationToo() { pendingInstantiationEmit(12); } void redeclDefinitionEmit(){} typedef Outer::Inner OuterIntInner_right; int defineListDoubleRight() { List ld; ld.push_back(0.0); return ld.size; } inline void defineListLongRight() { List ll; } template struct MergePatternDecl; void outOfLineInlineUseRightF(void (OutOfLineInline::*)() = &OutOfLineInline::f); void outOfLineInlineUseRightG(void (OutOfLineInline::*)() = &OutOfLineInline::g); void outOfLineInlineUseRightH(void (OutOfLineInline::*)() = &OutOfLineInline::h); inline int *getStaticDataMemberRight() { return WithUndefinedStaticDataMember::undefined; }