1 // { dg-do compile } 2 // { dg-options "-std=gnu++0x" } 3 4 template<int i> class X { /* ... */ }; 5 X< 1>2 > x1; // // { dg-error "numeric constant" } 6 X<(1>2)> x2; // Okay. 7 8 template<class T> class Y { /* ... */ }; 9 Y<X<1>> x3; // Okay, same as "Y<X<1> > x3;". 10 Y<X<6>>1>> x4; // { dg-error "numeric constant" } 11 Y<X<(6>>1)>> x5; // Okay 12