我正在将项目从vc6迁移到vs2010。在编译时我得到一个错误的行将控制台应用程序从VC 6迁移到VS 2010
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时需要完成的任何必需的设置。Plus在迁移代码之前需要执行哪些步骤。
请在这里找到错误的代码行。需要帮助请叫我。
在此先感谢。
// ----------------------------------------------------------------------------
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_)
我的猜测是,在'.h'文件中的'class {}'后面缺少一个分号。 – 2013-04-08 17:05:12
不会,这会导致一个**重复的**类型说明符:'class Foo {}/* 1 */template TMemPool :: TTag */* 2 */TMemPool :: GetAt' - 返回一个'Foo'或者'TTag'?这里的问题是'tag''不能命名一个类型,正如user93353解释的那样。 –
MSalters
2013-04-08 19:48:19