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