Mercurial > hg > CbC > CbC_llvm
comparison clang/test/Modules/Inputs/templates-right.h @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
147:c2174574ed3a | 150:1d019706d866 |
---|---|
1 @import templates_top; | |
2 | |
3 template<typename T> class Vector { | |
4 public: | |
5 void push_back(const T&); | |
6 }; | |
7 | |
8 template<typename T> class List; | |
9 template<> class List<bool> { | |
10 public: | |
11 void push_back(int); | |
12 }; | |
13 | |
14 namespace N { | |
15 template<typename T> class Set { | |
16 public: | |
17 void insert(T); | |
18 }; | |
19 } | |
20 | |
21 constexpr unsigned List<int>::*size_right = &List<int>::size; | |
22 List<int> list_right = { 0, 12 }; | |
23 typedef List<int> ListInt_right; | |
24 | |
25 template <typename T> | |
26 void pendingInstantiationEmit(T) {} | |
27 void triggerPendingInstantiationToo() { | |
28 pendingInstantiationEmit(12); | |
29 } | |
30 | |
31 void redeclDefinitionEmit(){} | |
32 | |
33 typedef Outer<int>::Inner OuterIntInner_right; | |
34 | |
35 int defineListDoubleRight() { | |
36 List<double> ld; | |
37 ld.push_back(0.0); | |
38 return ld.size; | |
39 } | |
40 | |
41 inline void defineListLongRight() { | |
42 List<long> ll; | |
43 } | |
44 | |
45 template<typename T> struct MergePatternDecl; | |
46 | |
47 void outOfLineInlineUseRightF(void (OutOfLineInline<int>::*)() = &OutOfLineInline<int>::f); | |
48 void outOfLineInlineUseRightG(void (OutOfLineInline<int>::*)() = &OutOfLineInline<int>::g); | |
49 void outOfLineInlineUseRightH(void (OutOfLineInline<int>::*)() = &OutOfLineInline<int>::h); | |
50 | |
51 inline int *getStaticDataMemberRight() { | |
52 return WithUndefinedStaticDataMember<int[]>::undefined; | |
53 } | |
54 | |
55 inline WithAttributes<int> make_with_attributes_right() { return WithAttributes<int>(); } |