перенос консольного приложения с VC 6 на VS 2010

Я переношу свой проект с 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

Решение

Какой тип 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 и далее, что изменилось.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]