| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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] Вроде работает ЗЫ: Вариант с двумя классами не прокатил.... Код тоже предоставить не можно... Полный код весит очень много + проект закрытый... |