Каков наилучший способ иметь статический член в классе шаблонной библиотеки, отличном от -, без возложения бремени определения члена на пользователя класса?
Скажем, я хочу предоставить этот класс:
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_;
У меня есть ответ ниже, но у него есть некоторые недостатки. Есть ли лучшие и/или более элегантные решения?