1// { dg-do run  }
2template<class T_type, int N>
3class foo {
4public:
5  enum bar { z = 0 };
6};
7
8template<int N>
9class foo<double, N> {
10public:
11  enum bar { z = 1 };
12};
13
14template<class T_type>
15class foo<T_type, 2> {
16public:
17  enum bar { z = 2 };
18};
19
20int main()
21{
22    if ((foo<int,3>::z == 0) && (foo<double,3>::z == 1)
23       && (foo<float,2>::z == 2))
24           return 0;
25    else
26        return 1;
27}
28