静的メンバは面倒くさい
クラステンプレート内で宣言した静的メンバも、普通のクラスと同様の定義をヘッダに書かないとならない。これを抜かすと大量のリンクエラーになってしまう。
template <class T> struct A { static T value; }; template <class T> T A<T>::value; // これ
整合性のために必要なのは確かで、こういう単純な例だとさして面倒ではない。
しかし静的メンバが増えてくると、メンバが変わるたびにコピーして修正するのを繰り返すので結構手間がかかる。また、宣言と違って、同じ型の変数をコンマで並べることもできない。