クラス ユーザーにメンバーを定義する負担をかけずに、テンプレート化されていないライブラリ クラスに静的メンバーを配置する最善の方法は何ですか?
このクラスを提供したいとします。
class i_want_a_static_member
{
static expensive_resource static_resource_;
public:
void foo()
{
static_resource_.bar();
}
};
次に、クラスのユーザーは、静的メンバーをどこかに定義することを忘れてはなりません (すでに何度も回答 されているように):
// this must be done somewhere in a translation unit
expensive_resource i_want_a_static_member::static_resource_;
以下に答えがありますが、いくつかの欠点があります。より優れた、および/またはよりエレガントなソリューションはありますか?