This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Proposal for the 'long long' problems


On Thu, Nov 01, 2001 at 04:51:08PM -0500, Phil Edwards wrote:
> On Thu, Nov 01, 2001 at 01:09:37PM -0800, Nathan Myers wrote:
> > On Solarix 8, strtoll is there but the other C99 junk isn't.
> > You have to jimmy the configure to get long long support on 
> > Solarix.  That sucks.
> 
> That's how this whole thread got started.  That's precisely the 
> problem I'm trying to solve.  

Well, yes.  

> > The C99 features (those that are meaningful in C++ -- or did you want
> > to have a flag to turn on C99's complex?) should have flags of their own.
> 
> --enable-c99 has been in the trunk sources for almost 7 months.
> 
> My proposal is simply shifting some of its features from one controlling
> "found it!" variable to another.  If you want to split up the C99 features
> into individual --enable-foo flags, that's a whole 'nother idea ...

Of course.  But that your work is necessary at all highlights the 
real problem: --enable-c99 is a sham.  We're interested in some
particular extensions, some of which (also) got adopted into C99.  
Since the C99 committee went out of their way to be incompatible 
with C++98, it is far from a foregone conclusion how much of it 
C++0x can or will adopt.

C99 as a whole is a dog's breakfast we can't possibly digest, and 
trying (or pretending) can only cause confusion.  If we are adopting 
extensions in the expectation that they will someday appear in C++0x, 
we should be labeling them that way.

How C++ and C99 are to be reconciled is a terribly complicated question.
Read Bjarne's paper "Sibling Rivalry: C and C++" for more insight into
the relationship among K&R, C89, C++98, C99, and C++0x.  C++0x (or our 
extensions toward it) cannot be compatible with both C++98 and C99.

Nathan Myers
ncm at cantrip dot org


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]