|
Boost : |
From: Robert Ramey (ramey_at_[hidden])
Date: 2006-10-08 16:32:50
David Abrahams wrote:
>> Hence, adding say regex to the standard doesn't add any
>> code to the standard.
>
> I don't know what you mean by "add code to the standard."
The standard include the implementation itself. Only the
interface that any implemenation has to adhere to.
>> It just certifies that anything that claims to be compatible with
>> the C++ regex standard works as the standard says it does.
> No, it says that any C++ implementation that claims to be standard
> compliant contains a conforming regex implementation. There have as
> yet been no moves toward "subsetting" of the C++ standard (other than
> the "hosted"/"non-hosted" distinction -- look it up if you care).
> Either an implementation provides everything the standard specifies,
> and can therefore claim compliance, or not. There's not going to be a
> separate "C++ regex standard."
OK but this goes to the heart of my question.
Suppose I start my new compiler company and I write a C++ compiler
which correctly translate C++ language as defined by the C++ standard
to some machine language.
I don't know if there is any official designation for such a program
such as "standard conformant C++ compiler" but that's what
we'll call it here.
Now I write the low-level code to implement things like fopen, etc
in terms of the API of the OS it's going to run on.
Its not a "conformant C++ implementation" because it doesn't include
all the libraries. So, I just add STLPort and Boost libraries - which
work with any "standard conformant C++ compiler". Now I have
a "conformant C++ implementation". So once there exists a
compiler which correctly implements the C++ language - the existence
of a "conformant C++ implementation" is guarenteed.
To summarize, having
a) "standard conformant C++ compiler"
b) a library implementation which is freely availble and depends only on
having a above
is equivalent to
having "conformant C++ implementation"
for Regex (and other libraries as well of course), we already have b)
above - so
what's the point "adding it to the standard" - which seems to me a lot of
work for very little practical benefit.
Robert Ramey
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk