Я делаю что-то глупое, но было бы неплохо, если бы это сработало.
Я пытаюсь специализировать типы так, чтобы мне нужна была моя собственная структура поиска, которая по сути глобальна (но в идеалеинкапсулирован как переменная класса), но я хочу, чтобы объекты были безопасными по типу, поэтому они параметризованы.
Следовательно, я, по сути,
template<class T, int N>
class SpecialArray
{
//...
private:
static map<string, internal_t> lookupTable
}
и по какой-то причине я не сделалДо тех пор, пока я не начну инициализировать lookupTable, не думаю, что когда я скажу
template <class T, int N>
SpecialArray<T,N>::lookupTable;
, будет много разных lookupTable
бегающих вокруг, привязанных к различным экземплярам SpecialArray
.
Я подозреваю, что это может быть просто несбыточной мечтой, и правильный ответ - это просто сделать его отдельным глобальным одноэлементным объектом, но в любом случае можно ли сделать так, чтобы для всех SpecialArray
был только один lookupTable
s?
Например, в моем C ++ (который не является реальным C ++) это будет выглядеть примерно так:
template <class T, int N>
SpecialArray<*,*>::lookupTable;
... но, к сожалению, GCC не компилирует C ++ вмой разум
Есть ли какой-нибудь реальный способ получить то, что я хочу (где-то в C ++ 0x-земле или что-то в этом роде)?Я, вероятно, столкнусь с этой проблемой также с некоторыми статическими методами, которые управляют этой таблицей поиска (которая не отслеживает типы или Ns).
... извините, если это не имело смысла.
Заранее благодарим за любую помощь или сочувствие, которое вы можете оказать.