我正在将我的项目从vc6迁移到vs2010。在编译时我在行
时遇到错误 TMemPool<T>::TTag* that error C2143: syntax error : missing ';' before '*' along with error C4430: missing type specifier - int assumed. Note: C++ does not support default-int.
任何人都可以帮助我。如果我问一个愚蠢的问题,我很抱歉。但我需要帮助,因为我对编码不太满意。
如果可能,请告诉我在将项目从VC 6迁移到VS 2010时需要完成的任何预先设置。此外,在迁移代码之前还需要执行任何步骤。
请在此处找到代码行以查找错误。如果您还有其他需要,请告诉我。
提前感谢。
// ----------------------------------------------------------------------------
template <class T>
TMemPool<T>::TTag*
TMemPool<T>::GetAt
(
int I_Index
)
{
if(I_Index < 0 || (unsigned int)I_Index > GetTotal())
return NULL;
return &m_pStorage[I_Index].m_Tag;
}
#endif // !defined(AFX_TMEMPOOL_H__825D671F_49E6_46C1_AB3D_79920EF692D8__INCLUDED_)
答案 0 :(得分:2)
TTag
是什么类型的?
试试这个
template <class T>
typename TMemPool<T>::TTag* TMemPool<T>::GetAt(int I_Index)
{
if(I_Index < 0 || (unsigned int)I_Index > GetTotal())
return NULL;
return &m_pStorage[I_Index].m_Tag;
}
IIRC,VC6用于编译typename
缺失的内容,但VC7以后发生了变化。