55 lines
746 B
C++
55 lines
746 B
C++
// RUN: %clang_cc1 -fsyntax-only -verify %s
|
|
// expected-no-diagnostics
|
|
|
|
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;
|
|
}
|
|
|