単一の静的メンバーを宣言する C++ クラスがあります。クラス全体がヘッダー ファイルに含まれているため、静的メンバー定義を含めるためだけに .cpp ファイルを作成するのは避けたいと思います。私は static キーワード (C の意味で) と匿名の名前空間を使用しようとしましたが、どちらもヘッダー ファイルの静的リンケージ (asfaik) で宣言された変数を与える必要がありますが、どちらのアプローチも機能しません。問題?
struct ServiceType {} ;
struct Transport
{
static ServiceType service ;
};
//error: definition of ‘Transport::service’ is not in namespace enclosing ‘Transport’
//namespace { ServiceType Transport::service ; }
//error: ‘static’ may not be used when defining a static data member
//static ServiceType Transport::service ;