저는 어리석은 짓을하고 있습니다 만, 효과가 있으면 좋을 것 같습니다.템플릿 인스턴스화간에 정적 멤버를 공유합니까? (불가능합니까?)
본질적으로 전역이지만 (이상적으로는 클래스 변수로 캡슐화 된) 자체 조회 구조가 필요한 방식으로 유형을 특수화하려고 시도하지만 객체를 유형이 안전하도록 매개 변수화합니다.
따라서, 나는 본질적으로
template<class T, int N>
class SpecialArray
{
//...
private:
static map<string, internal_t> lookupTable
}
을 가지고 내가
template <class T, int N>
SpecialArray<T,N>::lookupTable;
을 말할 때이 있다는 것을 LookupTable의 를 초기화 갔던 어떤 이유로, 나는 때까지 생각하지 않았다 SpecialArray
의 다양한 인스턴스에 연결된 많은 다른 lookupTable
이 실행됩니다.
나는 파이프 꿈일지도 모른다고 생각하며 정답은 별개의 글로벌 싱글 톤 객체로 만 만들지 만 어쨌든 SpecialArray
에 대해 하나만 lookupTable
이되도록 만들 수 있습니까?
등, (++ 실제 C 아니다) 내 마음에있는 C++, 이것은 갈 것 같은 뭔가
template <class T, int N>
SpecialArray<*,*>::lookupTable;
...하지만 슬프게도 GCC 내 마음에서 C++를 컴파일되지 않습니다
거기에 내가 원하는 것을 얻을 수있는 실제 방법이 있습니까 (어딘가에 C + + 0x - 토지 또는 뭔가)? 나는이 룩업 테이블을 조작하는 정적 인 메소드 (타입이나 N을 추적하지 않는다)와 함께이 문제에 부딪 힐 가능성이있다.
... 죄송합니다.
도움이나 동정심을 미리 주셔서 감사합니다.
'internal_t'은 무엇입니까? –
관련 질문 [C++ 정적 템플릿 멤버, 각 템플릿 유형에 대해 하나의 인스턴스?] (http://stackoverflow.com/questions/2220975/c-static-template-member-one-instance-for-each-template-type) –