Trolltech Home | Qt-interest Home | Recent Threads | All Threads | Author | Date
All threads index page 4

Qt-interest Archive, December 2006
VS2005 SP1 Final Breaks Qt


Message 1 in thread

I just installed SP1 Final and can no longer compile code that worked
previously. The errors that I get are similar to:

c:\qt\4.2.2\include\qtcore\../../src/corelib/tools/qmap.h(906) : error
C2244: 'QMultiMap<Key,T>::replace' : unable to match function
definition to an existing declaration
        c:\qt\4.2.2\include\qtcore\../../src/corelib/tools/qmap.h(891)
: see declaration of 'QMultiMap<Key,T>::replace'
        definition
        'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key
&,const T &)'
        existing declarations
        'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key
&,const T &)'

Is anyone else seeing the same?
-- 
 [ signature omitted ] 

Message 2 in thread

Hi,

Yes, I just tried to compile agian my projects, and the same error 
appeared, I can't even think of why this code has an error :(

Matthieu

FlyingHorse a écrit :
> I just installed SP1 Final and can no longer compile code that worked
> previously. The errors that I get are similar to:
>
> c:\qt\4.2.2\include\qtcore\../../src/corelib/tools/qmap.h(906) : error
> C2244: 'QMultiMap<Key,T>::replace' : unable to match function
> definition to an existing declaration
>         c:\qt\4.2.2\include\qtcore\../../src/corelib/tools/qmap.h(891)
> : see declaration of 'QMultiMap<Key,T>::replace'
>         definition
>         'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key
> &,const T &)'
>         existing declarations
>         'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key
> &,const T &)'
>
> Is anyone else seeing the same?
>   

--
 [ signature omitted ] 

Message 3 in thread

It seems that Microsoft knows the problem for some time...
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=987536&SiteID=1

Matthieu Brucher a écrit :
> Hi,
>
> Yes, I just tried to compile agian my projects, and the same error 
> appeared, I can't even think of why this code has an error :(
>
> Matthieu
>
> FlyingHorse a écrit :
>> I just installed SP1 Final and can no longer compile code that worked
>> previously. The errors that I get are similar to:
>>
>> c:\qt\4.2.2\include\qtcore\../../src/corelib/tools/qmap.h(906) : error
>> C2244: 'QMultiMap<Key,T>::replace' : unable to match function
>> definition to an existing declaration
>>         c:\qt\4.2.2\include\qtcore\../../src/corelib/tools/qmap.h(891)
>> : see declaration of 'QMultiMap<Key,T>::replace'
>>         definition
>>         'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key
>> &,const T &)'
>>         existing declarations
>>         'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key
>> &,const T &)'
>>
>> Is anyone else seeing the same?
>>   
>
> -- 
> To unsubscribe - send a mail to qt-interest-request@xxxxxxxxxxxxx with 
> "unsubscribe" in the subject or the body.
> List archive and information: http://lists.trolltech.com/qt-interest/
>
>
>

--
 [ signature omitted ] 

Message 4 in thread

Hello Matthieu Brucher,

Thanks for your headup, so we know we should not use VS2005 SP1.

It is remarkable that neither Microsoft nor Trolltech who both know
this serious issue quite a while find it worth to notify theire
customers about it.

Not a good service, I ask myself for what we are paying Trolltech so
much money every year for our commercial licenses....

You wrote at Samstag, 16. Dezember 2006 00:10:

MB> It seems that Microsoft knows the problem for some time...
MB> http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=987536&SiteID=1

MB> Matthieu Brucher a écrit :
>> Hi,
>>
>> Yes, I just tried to compile agian my projects, and the same error 
>> appeared, I can't even think of why this code has an error :(
>>
>> Matthieu
>>
>> FlyingHorse a écrit :
>>> I just installed SP1 Final and can no longer compile code that worked
>>> previously. The errors that I get are similar to:
>>>
>>> c:\qt\4.2.2\include\qtcore\../../src/corelib/tools/qmap.h(906) : error
>>> C2244: 'QMultiMap<Key,T>::replace' : unable to match function
>>> definition to an existing declaration
>>>         c:\qt\4.2.2\include\qtcore\../../src/corelib/tools/qmap.h(891)
>>> : see declaration of 'QMultiMap<Key,T>::replace'
>>>         definition
>>>         'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key
>>> &,const T &)'
>>>         existing declarations
>>>         'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key
>>> &,const T &)'
>>>
>>> Is anyone else seeing the same?
>>>   
>>
>> -- 
>> To unsubscribe - send a mail to qt-interest-request@xxxxxxxxxxxxx with 
>> "unsubscribe" in the subject or the body.
>> List archive and information: http://lists.trolltech.com/qt-interest/
>>
>>
>>

MB> --
MB> To unsubscribe - send a mail to qt-interest-request@xxxxxxxxxxxxx with "unsubscribe" in the subject or the body.
MB> List archive and information: http://lists.trolltech.com/qt-interest/




-- 
 [ signature omitted ] 

Message 5 in thread

On Sat, Dec 16, 2006 at 09:18:14AM +0100, Seneca wrote:
} Hello Matthieu Brucher,
} 
} Thanks for your headup, so we know we should not use VS2005 SP1.
} 
} It is remarkable that neither Microsoft nor Trolltech who both know
} this serious issue quite a while find it worth to notify theire
} customers about it.
} 
} Not a good service, I ask myself for what we are paying Trolltech so
} much money every year for our commercial licenses....
} 
} You wrote at Samstag, 16. Dezember 2006 00:10:
} 
} MB> It seems that Microsoft knows the problem for some time...
} MB> http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=987536&SiteID=1
[...]

Oh, cry me a river. Trolltech is working with Microsoft to get this fixed.
Did you actually read the thread at the URL above? It looks like, if
necessary, Trolltech will adjust the Qt code with a workaround. That's part
of what you are paying them for.

I suspect they didn't make any public announcement because any way they
phrase it is going to make it look like they blame Microsoft for screwing
up. Yes, it's Microsoft's fault, but saying so publicly is antagonistic and
will make it harder to work with them to solve problems like this now and
in the future.

Now, you can argue that Microsoft should have something about this issue in
their release notes for VS2005 SP1. In fact, they might, I don't know (do
you?). Would you expect them to hold a press conference to announce a bug
in one of their products because it affects a slim portion of the
developers? (Consider how many people are actually going to hit this bug.
How many developers use Qt4 on Windows with VS2005 and have or will soon
upgrade to SP1? Rough back of the envelope calculations make me think that
the number might generously be over a thousand, maybe two. Lots of people
develop with Qt, some portion of them have moved to using Qt4, some portion
of those develop on Windows, some portion of those use VS rather than
mingw, some portion of those use 2005 instead of an older version, and some
portion of those will actually bother downloading and installing SP1.) On
the other hand, both Google and this mailing list will point you to
information about the problem, including a workaround and a promise from
Trolltech and Microsoft that they are working to fix it.

Have you really been mistreated by either Microsoft or Trolltech? I don't
think so.

--Greg

--
 [ signature omitted ] 

Message 6 in thread

Gregory Seidman wrote:

> Oh, cry me a river. Trolltech is working with Microsoft to get this fixed.
> Did you actually read the thread at the URL above? It looks like, if
> necessary, Trolltech will adjust the Qt code with a workaround. That's part
> of what you are paying them for.

This evening, I'll send to the list the _2_ files that needed a _2_ 
lines fix as indicated in the forum. It took me 5 minuts to get the fix...

Matthieu

--
 [ signature omitted ] 

Message 7 in thread

Von: Matthieu Brucher <matthieu.brucher@xxxxxxxxxx>

> Gregory Seidman wrote:
> 
> > Oh, cry me a river. Trolltech is working with Microsoft to get this
> fixed.
> > Did you actually read the thread at the URL above? It looks like, if
> > necessary, Trolltech will adjust the Qt code with a workaround. That's
> part
> > of what you are paying them for.
> 
> This evening, I'll send to the list the _2_ files that needed a _2_ 
> lines fix as indicated in the forum. It took me 5 minuts to get the fix...
> 
Imho your fix will break abi. I've also modified the two headers but then kdelibs4 failed to compile due to another msvc bug which was not there in VS2005 and I uninstalled SP1... so I guess vs2005 sp1 is crap and we've to wait for sp2.

Christian
-- 
 [ signature omitted ] 

Message 8 in thread

Christian Ehrlicher wrote:

> Imho your fix will break abi. I've also modified the two headers but then kdelibs4 failed to compile due to another msvc bug which was not there in VS2005 and I uninstalled SP1... so I guess vs2005 sp1 is crap and we've to wait for sp2.
> 
> Christian

I'll ty to check that ;) - although adding a simple typedef breaking ABI 
is strange for me -

Matthieu

--
 [ signature omitted ] 

Message 9 in thread

OK, I didn't have the time to make a diff, so...

I modified 2 files, qmap.h and qhash.h. In these files, I did the same 
thing, that is adding a typedef Parent::iterator iterator, and instead 
of returning Parent::iterator, I returned an iterator directly in 
replace and insert. That did the trick, and does not break the binary 
interface as it is not modified - same type returned, but with an help 
for the compiler -

Matthieu

Matthieu Brucher a écrit :
> Christian Ehrlicher wrote:
>
>> Imho your fix will break abi. I've also modified the two headers but 
>> then kdelibs4 failed to compile due to another msvc bug which was not 
>> there in VS2005 and I uninstalled SP1... so I guess vs2005 sp1 is 
>> crap and we've to wait for sp2.
>>
>> Christian
>
> I'll ty to check that ;) - although adding a simple typedef breaking 
> ABI is strange for me -
>
> Matthieu
>
> -- 
> To unsubscribe - send a mail to qt-interest-request@xxxxxxxxxxxxx with 
> "unsubscribe" in the subject or the body.
> List archive and information: http://lists.trolltech.com/qt-interest/
>
>
>

--
 [ signature omitted ] 

Message 10 in thread

Gregory Seidman wrote:
> ...
> How many developers use Qt4 on Windows with VS2005 and have or will soon
> upgrade to SP1? Rough back of the envelope calculations make me think that
> the number might generously be over a thousand, maybe two. Lots of people
> develop with Qt, some portion of them have moved to using Qt4, some portion
> of those develop on Windows, some portion of those use VS rather than
> mingw, some portion of those use 2005 instead of an older version, and some
> portion of those will actually bother downloading and installing SP1.)

I'd like just to add these comments here which have been posted on 
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=987536&SiteID=1:

1. Thomas: "This makes it sound as if it's only likely to be an issue 
when using Qt. FWIW I just installed SP1 Beta and this issue breaks our 
code in at least three places. Thing is we don't use Qt. Expect to break 
a significant amount of code that's out there."

2. Brian (Microsoft?): "Yep, I agree.  I actually pushed back on the 
comment that "We're working with Trolltech" to work around this, but 
backed out my comment because I didn't want to come across too 
obnoxious.  But I think it's important to voice objection here.

SP1 has not only broken not only Qt but your code, and everyone else who 
hasn't (Note from me: I think he meant "has", else this sentence doesn't 
make any sense in that context) downloaded SP1 beta1 (I'm willing to bet 
<5% or even <<5% of VS2005 users are going to do this.  The rest don't 
know about SP1 beta1 or don't care.)"

3. Henrietta: "Also expect SP1 beta 1 to break any code that uses the 
boost graph library."


I think they speak for themselves.

Cheers, Oliver

--
 [ signature omitted ] 

Message 11 in thread

Seneca wrote:
> Hello Matthieu Brucher,
> ...
> It is remarkable that neither Microsoft nor Trolltech who both know
> this serious issue quite a while find it worth to notify theire
> customers about it.

Is this a fact that Trolltech knows about it? Where did you take this 
information from?

> 
> Not a good service, I ask myself for what we are paying Trolltech so
> much money every year for our commercial licenses....

Hey ho! Hold on a second: I didn't follow the link to the Microsoft 
website entry yet, but as I understand this is a _Microsoft_ issue, 
isn't it? So what are you blaming Trolltech for?

IMHO it's not their responsibility to check every update of each 
compiler if Qt still compiles with it - I don't know how long SP 1 for 
VS2005 is available (in fact, I wasn't even aware that one existed) but 
I'm sure it will be solved quite soon - by Microsoft!

Why don't you ask why you're paying Microsoft the money? After all it's 
a Microsoft product you're using and which gives you headache, no? 
(Assuming for now that it is indeed Microsoft's fault, as I understand 
from this thread it is...)

Cheers, Oliver

--
 [ signature omitted ] 

Message 12 in thread

Seneca wrote:
> Not a good service, I ask myself for what we are paying Trolltech so
> much money every year for our commercial licenses....

So TT is supposed to fix MS bugs just because you pay TT money?

Next time I'll blame the carpenter because I spilt milk on the table...

Andre'

--
 [ signature omitted ] 

Message 13 in thread

Matthieu Brucher wrote:
> Yes, I just tried to compile agian my projects, and the same error 
> appeared, I can't even think of why this code has an error :(
> 
> Matthieu
> 
> FlyingHorse a écrit :
> > I just installed SP1 Final and can no longer compile code 
> that worked
> > previously. The errors that I get are similar to:
> >
> > 
> c:\qt\4.2.2\include\qtcore\../../src/corelib/tools/qmap.h(906) : error
> > C2244: 'QMultiMap<Key,T>::replace' : unable to match function
> > definition to an existing declaration
> >         
> c:\qt\4.2.2\include\qtcore\../../src/corelib/tools/qmap.h(891)
> > : see declaration of 'QMultiMap<Key,T>::replace'
> >         definition
> >         'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key
> > &,const T &)'
> >         existing declarations
> >         'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key
> > &,const T &)'
> >
> > Is anyone else seeing the same?

I had this error when trying a SP1 beta. 
It pretty much looks like a compiler error.

I could work around it by moving the code in question 
into the class definition.

Andre'

--
 [ signature omitted ] 

Message 14 in thread

Till Oliver Knoll <oliver.knoll@xxxxxxxxxxx> wrote on 18.12.2006 10:21:39:

> Gregory Seidman wrote:
> 
> I'd like just to add these comments here which have been posted on 
> http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=987536&SiteID=1:
> 
> 
> (..) 
> 
> I think they speak for themselves.

We are aware of this issue and are working on it. More communication will 
follow. 

Kind regards,
Eivind Throndsen
-- 
 [ signature omitted ]