From 2900494414036983032
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: 109fba,9a6b7da9ba54eaea
X-Google-Attributes: gid109fba,public
X-Google-Thread: f78e5,9a6b7da9ba54eaea
X-Google-Attributes: gidf78e5,public
X-Google-ArrivalTime: 1993-06-30 01:42:25 PST
Xref: gmd.de comp.lang.c++:25437 comp.std.c++:2898
Newsgroups: comp.lang.c++,comp.std.c++
Path: gmd.de!xlink.net!howland.reston.ans.net!usc!elroy.jpl.nasa.gov!decwrl!netcomsv!netcom.com!rfg
From: rfg@netcom.com (Ronald F. Guilmette)
Subject: Re: C++ Language Extensions
Message-ID: <rfgC9FE01.ALz@netcom.com>
Organization: Netcom Online Communications Services (408-241-9760 login: guest)
References: <25807@alice.att.com> <rfgC91JEK.182@netcom.com> <25820@alice.att.com>
Date: Wed, 30 Jun 1993 08:24:00 GMT
Lines: 96

In article <25820@alice.att.com> ark@alice.UUCP () writes:
>In article <rfgC91JEK.182@netcom.com> rfg@netcom.com (Ronald F. Guilmette) writes:
>
>> "selective reading" on my prior posting.
>> He fixated on my suggestion that things like:
>
>	static struct S { int member; };
>	static enum color { red, green, blue };
>
>> should be allowed, and he seems to have failed entirely to notice that I
>> also mentioned the fact that in ANSI C, the names of types simply DO NOT
>> HAVE EXTERNAL LINKAGE.  Thus, in C, the above declarations are precisely
>> and exactly equivalent to:
>
>> 	struct S { int member; };
>> 	enum color { red, green, blue };
>
>True.
>
>> In other words, the `static' specifiers in the previous set of declarations
>> are entirely superfluous in C, and they are (in effect) simply ignored by
>> any conformant ANSI C compiler.
>
>Not quite true.  It is true for these particular declarations...

So what was I talking about???  I agree that my statement applied to the
things that I said (very plainly) it applied to.  I also agree that the
statement I made did not (and does not) apply to my dog, spot, to the
history of metaphyisical thought in western literature, or to the price
of yak fat in Tibet.

In other words, if you want to disagree with what I have said, please try
to understand that I meant exactly what I said, and nothing else.  In
particular, I did not mean something else that you seem to wish to
interpret me to have really meant.

>> What I suggested was that this should be the case in C++ also, for the sake
>> of compatability with ANSI C.  Now perhaps this constitutes a "new feature",
>> but it does not exactly provide any new functionality to the programmer.
>
>Of course it does.  The linkage of class names is one of the areas in
>which C++ is deliberately different from C.  This difference is closely
>tied up with the difference between structural equivalence and...

There you go again... trying to fit *my* words into *your* mental framework.

I guess I have to try to clarify this again.

I did not make a statement relating to the linkage of classes in C++, or
relating to whether or not it should be possible to control such linkage.

I did make a statement that C++ compilers should be able to accept and
ignore the `static' keyword in places where this very same keyword is
accepted and ignored by ANSI C compilers.

The capability for a compiler to ignore a given keword in a given context
does NOT provide new functionality in the language, not matter how many times
you erroneously say that it does.

I don't mind if you want to disagree with what I have said, but if you
choose to do so, please do make some effort to understand what I REALLY
said, not what you belived you thought you heard me say.

The linkage (or non-linkage) of class types in C++ is a matter wholly
separate from (and by and large unrelated to) the issue of whether or not
C++ compilers can or can not ignore the `static' keyword in certain
contexts where ANSI C compilers already ignore it. 

It is rather silly for you to disagree with me about the former issue
when I have in fact been attempting to express my views on the latter
issue.  Once again, let me stress that these are two different and
unrelated issues.

>> It is a pity that this simple message was so completely misconstrued, but
>> it does illustrate (I think) the level to which ignorance of the ANSI C
>> standard abounds in the C++ community (and also in the C++ standardization
>> committee).
>
>Tom Plum, Bill Plauger, and Sam Harbison are on the C++ committee.
>If you think they're ignorant of C, whom do you think isn't?

Having worked on C++ for so long you should know that the cardinal rule is
that for every general rule there are a few exceptions.

You named three members of x3j16 (out of 100+ members?) who are on really
intimate terms with the ANSI C standard.  (I could name perhaps two or
three more, but so what?)

I think the very fact that you could only come up with three names actually
tends to support my earlier statement.
 
-- 

-- Ronald F. Guilmette ------------------------------------------------------
------ domain address: rfg@netcom.com ---------------------------------------
------ uucp address: ...!uunet!netcom.com!rfg -------------------------------


