[Development] Help needed: MSVC 2017 compiler bug with QHash in 5.15 - QTBUG-82166

Oliver Wolff Oliver.Wolff at qt.io
Tue Feb 18 07:36:24 CET 2020


Hi Thiago,

I will have a look today.

Olli

On 16/02/2020 19:30, Thiago Macieira wrote:
> https://bugreports.qt.io/browse/QTBUG-82166
> 
> The bug report says:
> qmap.h(1213): error C2244: "QMultiMap<K,V>::insert": Keine Übereinstimmung für
> Funktionsdefinition mit vorhandener Deklaration gefunden [...
> \msvc.build_x64\audiofile\audiofile.vcxproj]
> qmap.h(1211): note: Siehe Deklaration von "QMultiMap<K,V>::insert"
> qmap.h(1213): note: Definition
> qmap.h(1213): note: 'QMultiMap<K,V>::iterator QMultiMap<K,V>::insert(const Key
> &,const T &)'
> qmap.h(1213): note: Vorhandene Deklarationen
> qmap.h(1213): note: 'QMap<K,V>::iterator
> QMultiMap<K,V>::insert(QMap<K,V>::const_iterator,const Key &,const T &)'
> qmap.h(1213): note: 'QMap<K,V>::iterator QMultiMap<K,V>::insert(const Key
> &,const T &)'
> 
> my sloppy translation of German is that the compiler is at the definition of
> QMultiMap<K,V>::iterator QMultiMap<K,V>::insert(const Key &,const T &)
> 
> and can't find the previous declaration of such a function. It suggests these
> two instead:
> QMap<K,V>::iterator QMultiMap<K,V>::insert(QMap<K,V>::const_iterator,const Key
> &,const T &)
> QMap<K,V>::iterator QMultiMap<K,V>::insert(const Key &,const T &)
> 
> The second one should have matched, since QMultiMap's iterator is just QMap's:
>      using typename QMap<Key, T>::iterator;
> 
> In fact, this is a using declaration, not a typedef.
> 
> MSVC 2019 compiled the change without a problem and the CI seems to have found
> no problem. The bug reporter indicates this is happening on a precompiled
> header, so it may be difficult to reproduce.
> 
> Is there a volunteer to help figuring this out? I'm strapped for time and
> access to the 2017 compiler is limited for me.
> 


More information about the Development mailing list