1*c87b03e5Sespie template <class T, unsigned N>
size(T (&)[N])2*c87b03e5Sespie   unsigned size(T (&)[N]) { return N; }
3*c87b03e5Sespie template <class T, unsigned N>
size(T const (&)[N])4*c87b03e5Sespie   unsigned size(T const (&)[N]) { return N; }
5*c87b03e5Sespie 
main()6*c87b03e5Sespie int main() {
7*c87b03e5Sespie   short iarray[] = { 1, 2, 3, 4, 5 };
8*c87b03e5Sespie   const short carray[] = { 1, 2, 3, 4, 5 };
9*c87b03e5Sespie   return size(iarray) - size(carray);
10*c87b03e5Sespie }
11