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