Russian Qt Forum
Ноябрь 23, 2024, 11:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с QMap при компиляции на Vista  (Прочитано 4313 раз)
ufna
Гость
« : Октябрь 24, 2007, 07:25 »

Здравсвуйте!

Пользуюсь связкой MSVS 05 + Qt 4.2.0. Ранее, писал проекты на Windows XP, все работало отлично. Сейчас пришлось перейти на Vista, после чего при компиляции всех проектов вылазит следующее:

Код:
1>d:\qt\4.2.0\include\qtcore\../../src/corelib/tools/qmap.h(906) : error C2244: 'QMultiMap<Key,T>::replace' : unable to match function definition to an existing declaration
1>        d:\qt\4.2.0\include\qtcore\../../src/corelib/tools/qmap.h(891) : see declaration of 'QMultiMap<Key,T>::replace'
1>        definition
1>        'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key &,const T &)'
1>        existing declarations
1>        'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key &,const T &)'
1>d:\qt\4.2.0\include\qtcore\../../src/corelib/tools/qmap.h(910) : error C2244: 'QMultiMap<Key,T>::insert' : unable to match function definition to an existing declaration
1>        d:\qt\4.2.0\include\qtcore\../../src/corelib/tools/qmap.h(892) : see declaration of 'QMultiMap<Key,T>::insert'
1>        definition
1>        'QMap<aKey,aT>::iterator QMultiMap<Key,T>::insert(const Key &,const T &)'
1>        existing declarations
1>        'QMap<aKey,aT>::iterator QMultiMap<Key,T>::insert(const Key &,const T &)'
1>mainWidget.cpp
1>d:\qt\4.2.0\include\qtcore\../../src/corelib/tools/qhash.h(864) : error C2244: 'QMultiHash<Key,T>::replace' : unable to match function definition to an existing declaration
1>        d:\qt\4.2.0\include\qtcore\../../src/corelib/tools/qhash.h(849) : see declaration of 'QMultiHash<Key,T>::replace'
1>        definition
1>        'QHash<Key,T>::iterator QMultiHash<Key,T>::replace(const Key &,const T &)'
1>        existing declarations
1>        'QHash<Key,T>::iterator QMultiHash<Key,T>::replace(const Key &,const T &)'
1>d:\qt\4.2.0\include\qtcore\../../src/corelib/tools/qhash.h(868) : error C2244: 'QMultiHash<Key,T>::insert' : unable to match function definition to an existing declaration
1>        d:\qt\4.2.0\include\qtcore\../../src/corelib/tools/qhash.h(850) : see declaration of 'QMultiHash<Key,T>::insert'
1>        definition
1>        'QHash<Key,T>::iterator QMultiHash<Key,T>::insert(const Key &,const T &)'
1>        existing declarations
1>        'QHash<Key,T>::iterator QMultiHash<Key,T>::insert(const Key &,const T &)'
1>d:\qt\4.2.0\include\qtcore\../../src/corelib/tools/qmap.h(906) : error C2244: 'QMultiMap<Key,T>::replace' : unable to match function definition to an existing declaration
1>        d:\qt\4.2.0\include\qtcore\../../src/corelib/tools/qmap.h(891) : see declaration of 'QMultiMap<Key,T>::replace'
1>        definition
1>        'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key &,const T &)'
1>        existing declarations
1>        'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key &,const T &)'
1>d:\qt\4.2.0\include\qtcore\../../src/corelib/tools/qmap.h(910) : error C2244: 'QMultiMap<Key,T>::insert' : unable to match function definition to an existing declaration
1>        d:\qt\4.2.0\include\qtcore\../../src/corelib/tools/qmap.h(892) : see declaration of 'QMultiMap<Key,T>::insert'
1>        definition
1>        'QMap<aKey,aT>::iterator QMultiMap<Key,T>::insert(const Key &,const T &)'
1>        existing declarations
1>        'QMap<aKey,aT>::iterator QMultiMap<Key,T>::insert(const Key &,const T &)'

В общем, знает ли кто как решить данную проблему?
Записан
Mike
Гость
« Ответ #1 : Октябрь 24, 2007, 07:55 »

Попробуй хотфикс для Visual Studio 2005 http://support.microsoft.com/kb/930198, должно заработать
Записан
Sergey B.
Программист
*****
Offline Offline

Сообщений: 544



Просмотр профиля WWW
« Ответ #2 : Октябрь 24, 2007, 11:28 »

Попробуй хотфикс для Visual Studio 2005 http://support.microsoft.com/kb/930198, должно заработать

Там есть пример кода для проверки этого.
Создай простой файлик, скажем template.cpp:

Код:
template <class T>
class A
{
public:
    typedef int N_A;
};

template <class T>
class B : public A<T>
{
public:
    typename A<T>::N_A test();
};

template <class T>
typename A<T>::N_A B<T>::test()   
{
    return 0;
}

и попробуйте скомпильнуть.
Записан
ufna
Гость
« Ответ #3 : Октябрь 24, 2007, 14:59 »

Спасибо!
Хотфикс поставил (только как то косо, сетап пришлось прервать), но он работает, и теперь все компилится.
Еще раз спасибо! Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.053 секунд. Запросов: 22.