Я переношу свой проект с 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_)
Какой тип 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 и далее, что изменилось.
Других решений пока нет …