配列の要素数を返すテンプレート関数

C++テンプレートテクニックの2-4より.

#include <iostream>
using namespace std;

template <class T, int N>
int size(T (&x)[N]) {
  return N;
}

int main(int argc, char const* argv[]) {
  int a[] = {1, 2, 3, 4, 5}; 
  cout << size(a) << endl;
  return 0;
}

出力結果

5

これは面白い.今までC++のテンプレートについてちゃんと把握していなかったので,これを機に勉強して身に付けたい.