안녕하세요, Xcode, gcc (Apple LLVM 컴파일러 3.0)에서 수업을 컴파일하는 데 문제가 있습니다. ContextSchedule 클래스를 작성했는데 다른 클래스 멤버 함수의 목록을 캡슐화하고 아무런 문제가 없습니다. MSVC++ 2005에서 컴파일하십시오.템플릿 매개 변수의 클래스 멤버 함수에 대한 포인터
template<class T>
class C_ContextScheduler
{
public:
typedef void (T::*T_EventFunc)();
typedef std::map<u64, T_EventFunc> T_EventMap;
public:
//@ c-tor
C_ContextScheduler(T & context) : m_Context(context), m_currentTick(0) {};
//@ Schedule
//@ funcPtr - pointer to function of class T
//@ dellayTime in milliseconds - after dellayTime from now will be funcPtr called
void Schedule(T_EventFunc funcPtr, u32 dellayTime)
{
u64 callingTime = m_currentTick + dellayTime;
std::pair<int, bool> res = m_eventMap.insert(T_EventMap::value_type(callingTime, funcPtr));
SC_ASSERT(res.second);
} ...
아이디어가 있으십니까? 이 솔루션의 템플리트 방식을 보존하고 싶습니다.
정확히 나타나는 오류 메시지는 무엇입니까? –
"문제가있다"고 말하면서 * 무슨 문제인지 말하지 않습니다. – sth
템플릿 유형 매개 변수에 대한 템플릿 인수는 – oiko