56 lines · c
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 55inline WithAttributes<int> make_with_attributes_right() { return WithAttributes<int>(); }56