Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, KARALIUS, Вы писали:
KAR>>Помогие понять. Вот на 64-битном СДК от майкрософта не могу скомпилить их же MFC-шный код, который лежит в 64-битном include:
KAR>>KAR>>template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
KAR>>typename CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::CAssoc* // CAssoc - это имя типа в контексте CMap<.....>
KAR>>CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::NewAssoc()
KAR>>{
KAR>>...
KAR>>}
KAR>>
К>Это связано не с 64-битностью, а с переездом на новый, более требовательный компилятор.
К>(Он тебе в первом же сообщении об ошибке на это намекнул.)
К>Может, там нужно какую-то опцию или прагму включить для обратной совместимости по дебилизации компилятора?
Не совсем понял... Вот, например
template<class TYPE, class ARG_TYPE>
class CList : public CObject
{
protected:
struct CNode
{
CNode* pNext;
CNode* pPrev;
TYPE data;
};
И так далее...
а потом
template<class TYPE, class ARG_TYPE>
void CList<TYPE, ARG_TYPE>::FreeNode(CList::CNode* pNode)
Куда вставить этот typename?
Я не силен в STL'е, так что не обессудьте если вопрос глупый.