meryngii.neta

今日も新たな"ネタ"を求めて。

静的メンバは面倒くさい

クラステンプレート内で宣言した静的メンバも、普通のクラスと同様の定義をヘッダに書かないとならない。これを抜かすと大量のリンクエラーになってしまう。

template <class T>
struct A
{
	static T value;
};

template <class T>
T A<T>::value; // これ

整合性のために必要なのは確かで、こういう単純な例だとさして面倒ではない。
しかし静的メンバが増えてくると、メンバが変わるたびにコピーして修正するのを繰り返すので結構手間がかかる。また、宣言と違って、同じ型の変数をコンマで並べることもできない。