brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 262f7ca Raw
113 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -verify %s2 3namespace N0 {4  template<typename T>5  void f0();6 7  template<typename T>8  int x0 = 0;9 10  template<typename T>11  class C0;12}13using namespace N0;14 15template<>16void f0<int>(); // expected-error {{no function template matches}}17 18template<>19int x0<int>;20 21template<>22class C0<int>;23 24namespace N1 {25  namespace N2 {26    template<typename T>27    void f2();28 29    template<typename T>30    int x2 = 0;31 32    template<typename T>33    class C2;34  }35  using namespace N2;36}37 38template<>39void N1::f2<int>(); // expected-error {{no function template matches}}40 41template<>42int N1::x2<int>;43 44template<>45class N1::C2<int>;46 47namespace N3 {48  namespace N4 {49    template<typename T>50    void f4();51 52    template<typename T>53    int x4 = 0;54 55    template<typename T>56    class C4;57  }58  using N4::f4;59  using N4::x4;60  using N4::C4;61}62 63template<>64void N3::f4<int>(); // expected-error {{no function template matches}}65 66template<>67int N3::x4<int>;68 69template<>70class N3::C4<int>;71 72inline namespace N5 {73  template<typename T>74  void f5();75 76  template<typename T>77  int x5 = 0;78 79  template<typename T>80  class C5;81}82 83template<>84void f5<int>();85 86template<>87int x5<int>;88 89template<>90class C5<int>;91 92namespace N6 {93  inline namespace N7 {94    template<typename T>95    void f7();96 97    template<typename T>98    int x7 = 0;99 100    template<typename T>101    class C7;102  }103}104 105template<>106void N6::f7<int>();107 108template<>109int N6::x7<int>;110 111template<>112class N6::C7<int>;113