>892
最適化前提でいいなら、
template<class T, int N> int len(T (&)[N]){return N;}
というのがわりと有名。

>892,895
sizeofを使うマクロに比べてこの関数がよいのは、配列以外をこの関数に
与えるとコンパイルエラーになること。

最適化無しで数値にできる方法は知らない。
Boostスレのほうがいいかもな。