0

我正在将我的项目从 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_)
4

1 回答 1

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 开始,情况发生了变化。

于 2013-04-08T17:05:36.370 回答