Training courses
Kernel and Embedded Linux
Bootlin training courses
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
@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>(); }