summaryrefslogtreecommitdiff
path: root/clang/test/CXX/temp/temp.res/temp.local/p8.cpp
blob: 5d9d50913f360dd080f891d96515682143e72316 (about) (plain)
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
// RUN: %clang_cc1 -fsyntax-only -verify %s

namespace N { 
  enum { C };
  template<class T> class B {
    void f(T);
  }; 
}

template<class C> void N::B<C>::f(C) {
  C b;
}

namespace N {
  enum { D };
  namespace M {
    enum { C , D };
    template<typename C> class X {
      template<typename U> void f(C, U);

      template<typename D> void g(C, D) {
        C c;
        D d;
      }
    };

    struct Y {
      template<typename U> void f(U);      
    };
  }

  struct Y {
    template<typename D> void f(D);
  };
}

template<typename C> 
template<typename D>
void N::M::X<C>::f(C, D) {
  C c;
  D d;
}

template<typename C>
void N::M::Y::f(C) {
  C c;
}

template<typename D> 
void N::Y::f(D) {
  D d;
}