これはマクロを作るのが一番簡単かもしれません。

元ネタでは、

のようになっていましたが、C++では

でよさそうです。ただ、typeがCV修飾されているとエラーになるので、元ネタのままの方がよさそうです。

あえてテンプレートにするのであれば、次のようにすればOKです。

C++11以降であればconstexprを付ければ大丈夫ですが、C++03までは定数式にならないという問題が発生します。そこで、

のように、メンバの型と同じ型の返却値を持つ関数テンプレートを宣言し(関数原型だけでかまいません。関数本体の定義は不要です)、

のような使い方をしてやれば、定数式としてメンバのサイズを取得することができます。このように、C++では、本体の定義がない関数原型だけの関数であっても利用価値があります。

ただ、よくよく考えると元ネタのマクロが一番よさそうです。何でもかんでもテンプレートにすればいいというものではありません。


元ネタ

↑ 構造体に関するテンプレート