2 // { dg-options "-std=gnu++0x" }
8 constexpr int bytesize(T t)
9 { return sizeof (t); } // OK
11 char buf[bytesize(0)]; // OK -- not C99 VLA
14 // function template 2
15 template<typename _Tp>
17 square(_Tp x) { return x; }
19 // Explicit specialization
21 constexpr unsigned long
22 square(unsigned long x) { return x * x; }
24 // Explicit instantiation
25 template int square(int);
30 template long square(long);