typedefで配列型に名前をつける
typedefは基本的に以下のように使う。
typedef int size;//以降size型をint型として使うことができるようになる
ただ、配列をtypedefしたい場合は表記法が直感に反したものになる
例えばint型の配列をsizesと定義したい時は以下のように表記する。
typedef int size[];//typedef int[] sizeではない
これは例えばgccのarrayの定義などで使われている。/usr/include/c++/5/にあるarrayファイルには以下のようなコードがある(多分gccはここを見に行っている)。
template<typename _Tp, std::size_t _Nm> struct __array_traits { typedef _Tp _Type[_Nm];//<-ここ ………… };
ここでは_Tp型の配列を_Typeとして使うために上記の構文を使用している。
わからないなあ、という話でした。