Boost logo

Boost :

Subject: Re: [boost] Array in Unordered Map
From: Stephan T. Lavavej (stl_at_[hidden])
Date: 2012-05-01 09:17:25


[Daniel James]
> I think Microsoft tends to prioritize supporting existing code
> over strict standards compliance

In the STL, I will happily break user code in the pursuit of conformance. ("Because the Standard told us to" is a very effective response.) For example, VC10 implemented C++11's immutable sets - a breaking change from C++98/03 - with no escape hatch.

Even the compiler does this from time to time. For example, VC used to take shortcuts in the conditional operator, avoiding the generation of temporaries that were technically required by the Standard. This didn't cause major problems until the addition of rvalue references, where the shortcuts led to unintentional stealing from lvalues (basically, the end of the world). So the conditional operator was fixed to strictly follow the Standard - making rvalue references happy, but breaking user code that tried to perform certain wacky conversions (prohibited by the conditional operator's rules).

Stephan T. Lavavej
Visual C++ Libraries Developer


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk