sub-optimum map implemtnation VC6

I've been tracking down a performance problem which rather strangely occured

when destroying a map. It takes 5 minutes!

Ok, it's a big map! I do realise that this is not a bug, merely sub-optimal

performance. The reason it took me so long to find the problem was due to

my huge reluctance to conclude that STL could be the problem. It is

normally so fantastically efficient. (P.J. my hat goes off to you)

However I noticed that the VC6 implementation of map has the clear method

implemented by erase(begin(),end()); The problem with this is that it

rebalances the red-black tree for every position in the iteration sequence.

I have noticed that the SGI implementation is optimised for the clear() case

and in fact calls the clear method if the erase method is called with

begin(), end().

Is this improved in VC7? Or is there a patch I can download?

Regards,

Neil Groves

Irrational Daffodil Ltd