클래스 템플릿에 정적 함수 포인터 멤버를 사용하려면 어떻게해야합니까?클래스 템플릿의 정적 함수 포인터 멤버
나는 Visual Studio에서 C++로 일하고 있어요, 내 코드는 다음과 유사합니다
template<typename T>
class ClassTemplate
{
public:
static T* CallIt() { return ClassTemplate<T>::mFunctionPointer(); }
private:
static T* (*mFunctionPointer)();
};
내가는 "확인되지 않은 외부 기호"오류가 컴파일
. 나는 클래스 선언의 외부에서 같은 것을 어떻게해야 같아요 :template<typename T>
T* (ClassTemplate<T>::*mFunctionPointer)() = NULL;
을 불행하게도 그때 C2998을 얻을, "템플릿을 정의 할 수 없습니다."
아이디어가 있으십니까?
이것은 컴파일러 오류를 해결하지는 않지만 템플릿 + 헤더가 너무 잘 섞이지 않는다는 것을 기억하십시오. 템플릿을 사용하는 모든 번역 단위에 구현을 포함시켜야합니다. –
감사합니다. Merlyn,하지만 헤더에 모든 내용이 있습니다. –