今日、会社で出た話。C言語だとグローバル変数を (宣言ではなく) 定義するには、必ずソースファイル内を書かなければいけなくて面倒だけど、C++ なら簡単。テンプレートクラスを使えば、ヘッダファイルだけでグローバル変数を定義できる。以下、参考。 なので、テンプレートクラスのstaticメンバは異なる翻訳単位で複数回定義されて いても、全く同じ定義ならば、一回しか定義されていないのと同義です。 cppll:8425 Re: クラステンプレートのstaticメンバ変数 具体的なコードとしては、以下のような感じ (picojson から一部変更して引用)。 template <typename AlwaysBool> struct last_error_t { static std::string s; }; template <typename AlwaysBool> std::string l