Совместное использование статических элементов между экземплярами шаблона? (невозможно?)

Я делаю что-то глупое, но было бы неплохо, если бы это сработало.

Я пытаюсь специализировать типы так, чтобы мне нужна была моя собственная структура поиска, которая по сути является глобальной (но в идеале инкапсулированной как переменная класса), но я хочу, чтобы объекты были безопасными по типу, чтобы они были параметризованы.

Следовательно, я, по сути,

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.

Я подозреваю, что это может быть несбыточной мечтой, и правильный ответ - это просто сделать его отдельным глобальным одноэлементным объектом, но в любом случае есть ли сделать его таким, чтобы был только одинlookupTable&nbsp;для всехSpecialArrays?

Например, в C ++, на мой взгляд (это не настоящий C ++), это будет что-то вроде

template <class T, int N>
SpecialArray<*,*>::lookupTable;

... но, к сожалению, GCC не компилирует C ++ в моей голове

Есть ли реальный способ получить то, что я хочу (где-то в C ++ 0x-земле или что-то)? Я, вероятно, столкнусь с этой проблемой также с некоторыми статическими методами, которые управляют этой таблицей поиска (которая не отслеживает типы или Ns).

... извините, если это не имеет никакого смысла.

Заранее благодарим за любую помощь или сочувствие, которое вы можете оказать.