【发布时间】:2012-02-02 18:03:27
【问题描述】:
我有这个代码:
template<typename T>
T* Factory<T>::GetObject(const char* type)
{
StringID typeID(type);
map<StringID, T* (*)()>::iterator it = m_createFunctions.find(typeID);
return it->second();
}
它在 Visual Studio 2010 和 2008 上可以正常编译,但不能在 Clang 3.0 (Xcode) 上编译。我认为它在 GCC 上编译得很好,但我不确定它是否与现在的形式相同。错误“; 表达式后预期”在这一行:
map<StringID, T* (*)()>::iterator it = m_createFunctions.find(typeID);
你知道为什么吗?
【问题讨论】:
-
LLVM?你是说 Clang 吗?