brintos

brintos / llvm-project-archived public Read only

0
0
Text · 903 B · e5395b6 Raw
29 lines · c
1template<typename> struct MergeSpecializations;2template<typename T> struct MergeSpecializations<T[]> {3  typedef int partially_specialized_in_c;4};5template<> struct MergeSpecializations<bool> {6  typedef int explicitly_specialized_in_c;7};8 9template<typename T> struct MergeTemplateDefinitions {10  static constexpr int f();11  static constexpr int g();12};13template<typename T> constexpr int MergeTemplateDefinitions<T>::g() { return 2; }14 15template<typename T1 = int>16struct MergeAnonUnionMember {17  MergeAnonUnionMember() { (void)values.t1; }18  union { int t1; } values;19};20inline MergeAnonUnionMember<> maum_c() { return {}; }21 22template<typename T> struct DontWalkPreviousDeclAfterMerging { struct Inner { typedef T type; }; };23typedef DontWalkPreviousDeclAfterMerging<char>::Inner dwpdam_typedef;24 25namespace TestInjectedClassName {26  template<typename T> struct X { X(); };27  typedef X<char[3]> C;28}29