Boost logo

Boost :

Subject: [boost] Questions about the C++ standard process - Was: Boost libraries for 'TR2'
From: Robert Ramey (ramey_at_[hidden])
Date: 2011-11-22 12:02:17


Joel de Guzman wrote:
> On 11/18/2011 2:09 PM, Robert Ramey wrote:

>> More to the point, if something like fusion is added to the standard
>> and the interface is defined - is someone actually going to
>> re-implement it? That would seem unbelievable to me.
>
> FWIW, Fusion can be implemented without its current dependencies
> especially in the C++11 world. I've been contemplating such an
> exercise. Such a no-dependency library would rock in terms of
> compile time. Complexity shouldn't hurt either. IMO, the needed
> infrastructure was largely in part due to limitations of the
> language and difficulty in implementing certain constructs
> (e.g. result_of and type sequences to name two). I believe C++11
> can simplify a lot of the current code.

I didn't mean to say it wasn't possilble to re-implement it. But
who would want to do it? I'm currently enthralled with fusion.
And you know I'm a fan of spirite. Frankly I'd prefer to see
you working on the "next great thing" - whatever that might be
than re-implementing fusion.

But that's all really aside from my main concern. I'm really thinking
of something quite different. My understanding is that the the
C++ commitee defines the requirements that a C++ compiler
must fulfill to be considered "conforming". On the face of it
I would interprete this to mean that a compiler is "conforming"
if it can parse text written in accordance with the standard
and produce an executable which will produce the expected
results.

But some time ago, it seems that "conforming compiler" morphed
into "conforming C++ developement system" where by a compiler
isn't considered "conforming" unless it's delivered along with an
implementation of the standard library. This raises a number of
questions to me:

a) if some company were to produce C++ compiler does he
also have to produce a standard library implementation? If
he does - that would be a huge barrier to entry for anyone
wanting to make a new compiler.

b) if somes delivers a compiler with out a standard library
is this compiler considerd "non-conforming".

c) can someone just attach a copy of boost and/or stllib
and still call his compiler "conforming to the C++ standard"?

d) doesn't adding libraries to the standard make it more
difficult and expensive to produce and sell a "conforming" C++ compiler.
Is this a good thing. Wouldn't adding hard to implement
libraries like fusion make this problem (if it is a problem) worse?

e) I question the priorities of the standards committee. I see
lambdas as interesting, but really I can't imagine any of the customers
I deal with every using them. (get other customers? - right). and this
has to add complexity the the process of making a new C++
compiler. And a lot of commitee effort is spent on this.
Meanwhile somethings create problems like issues raised
by run time linking - (ODR violations, visibility, etc.) seem
to get less attention - even though I would think they would
be easier to address. Of course this is just me speaking as a
lowly application developer.

I see competition for C++ not as coming from Haskell
(though this has some good ideas) but rather from Java and VisualBasic.
C++ is harder to learn than I think it should be - and it keeps
getting hard rather than easier.

I would be extremely curious to know what compiler (real and potential)
have to say about all this.

Thanks for reading my rant.

Robert Ramey


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