Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Портируем код из VC6.0 в VS 2005 |
Автор: alexsid1982 19.3.2008, 15:52 | ||||
Товарищи я в шоке. После многих попыток понять в чем я сдаюсь. имеем класс
Проблема в том что CStaticTable::mem нигде в классе не определен. В базовом классе его тоже нет.
никаких #define для mem тоже не обнаружено. Очевидно что CStaticTable::mem должен быть T CStaticTable::table[N::eAmount] Теперь парадокс. Код компилируется на VC 6.0 но на VS 2005 компилироваться отказывается. Кто может объяснить??? |
Автор: Alek86 19.3.2008, 16:16 | ||
ты скопировал с компилера? тогда как компилится
??? Добавлено через 1 минуту и 54 секунды и второе. что будет в VS 6.0 если написать (после строки с qsort): а. CStaticTable::mem; б. CStaticTable<N, T>::mem; в. mem; ? |
Автор: alexsid1982 20.3.2008, 20:55 |
по первому - моя ошибка по второму в VC все работает на ура в VS 2005 ничего не работает Вот такая ошибка Error 15 error C2039: 'mem' : is not a member of 'CStaticTable<N,T>' 367 |
Автор: bsa 20.3.2008, 21:17 |
А ты случаем не пытаешься этот шаблон во втором случае использовать? А то умные книжки по шаблонам говорят, что компилятор проверяет их только на соответствие синтаксису, если они не используются. |
Автор: alexsid1982 21.3.2008, 20:09 |
Так он и в первом случае используется... Смысл в том, что один и тот же код на VC6.0 компилируется, а на VS2005 не компилируется. Вот что расстраивает. |
Автор: Любитель 22.3.2008, 23:40 |
Можо полный код или сцылку, откуда сие? |
Автор: Alek86 24.3.2008, 14:02 |
ничего себе "некоторые баги"... сам по себе переменные в классы добавлять... ![]() думаю, что проблема в том, что у тебя 2 класса CStaticTable определено. Твой и стандартный. И они как-то пересекаются А в VS2005 стандартный убрали или отсунули куда-то |
Автор: Dennnis 24.3.2008, 14:18 |
А объект класса template<class N, class T> class CStaticTable где-нибудь создается? Просто тела методов шаблонных классов не проверяются при компиляции если не создан объект этого класса. |
Автор: Alek86 24.3.2008, 14:23 |
Dennnis, |
Автор: alexsid1982 31.3.2008, 14:37 |
забил на попытки понять в чем смысл... Переделал на использование T CStaticTable::table[N::eAmount] Вроде работает ![]() ЗЫ: Вариант с двумя классами не прокатил.... Код тоже предоставить не можно... Полный код весит очень много + проект закрытый... |