From: Phil Nash (phil.nash.lists_at_[hidden])
Date: 2006-10-09 06:16:44
On 10/8/06, Robert Ramey <ramey_at_[hidden]> 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
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.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk