
On 10/8/06, Robert Ramey <ramey@rrsd.com> wrote:
On the other hand, a conformant compiler doesn't need the standard for those libraries which have a free, available implementation written in C++ - they are by definition going to work.
This whole discussion sounds analogous to the debate over whether it breaks encapsulation to have member functions of a class that could equally be written in terms of its interface as free functions. So, in effect, what Rob is trying to say is that adding libraries, such as regex, that can be "implemented in terms of the interface" (ie the language, in this case) to the "class" (the standard library), breaks the "encapsulation", or integrity, of the standard itself :-)
From a purist point of view I can see his point, and tend to agree with it. I also see where he is coming from on the practical side (spend more time, with more motivation, to improve langauage compliance).
However, from a pragmatic perpective, I still favour adding the libraries to the standard (in terms of interface and gaurantees). This is because, as others have said, in many (especially larger) organisations, policies governing adoption of third party libraries can make it difficult - if not impossible - to use even as open and free library sets as Boost's. Where I am now, even though Boost was on their "approved list", use in my team had been put off because of the overhead of adding it to our source control and our projects. We are finally using it now, but still only those libraries that are implemented in headers. Then there are the larger number of developers/ team leaders/ managers who have either not heard of Boost, or are not familiar enough with it to think it worth taking on - and quite a few that I have met have negative preconceptions about it that can be difficult to overcome. All these obstacles would be drastically reduced or eliminated when talking about standard libraries. Anyway, that's my own view, for what it's worth. Best regards, [)o IhIL..