次の関数テンプレートは、指定したメンバへのポインタが配列型のメンバのものである場合、その要素数を返します。

C++11以降であればconstexprを付ければ定数式に展開できますが、C++03までは定数式に展開できません。そこで、定数式に展開可能なテンプレートについても考えてみましょう。

member_count_type_of関数テンプレートは関数原型しかありません。これを使って、

のようにしてやれば、メンバの要素数を定数式として取り出すことができます。


元ネタ

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