У меня есть класс X ...шаблон Специализация и статический Locals
class X {...}
и я хочу иметь один экземпляр X для каждого отдельного типа некоторого множества типов. (Некоторые из этих типов не классы и/или не написанные мной.)
Чтобы сделать это, я подумал:
template<typename T> X& XT();
, а затем для каждого типа A, B и C:
template<> X& XT<A>() { static X x; return x; }
template<> X& XT<B>() { static X x; return x; }
template<> X& XT<C>() { static X x; return x; }
Будет ли это работать? Это лучший способ сделать это? Каковы альтернативные способы?
Это довольно умный. Я не могу придумать никаких причин, почему это не сработает. – StilesCrisis
Вы пробовали попробовать? – Mehrdad
Для меня вопрос еще не ясен. – iammilind