Re: Name change to MSDN C++/CLI column
P.J. Plauger wrote:
"Le Chaud Lapin" <unoriginal_username@yahoo.com> wrote in message
news:1149369082.283021.305570@j55g2000cwa.googlegroups.com...
Dilip wrote:
This probably isn't relevant to this NG but some time ago there was a
lengthy thread here that felt that Microsoft is committing some kind of
grave mistake by labelling their C++/CLI column appearing in MSDN
magazine as "Pure C++". I just noticed that they have now changed it
to "Netting C++". Can we pardon them now? :-)
http://msdn.microsoft.com/msdnmag/issues/06/06/NettingC
An update on this issue:
Just now, while using Visual Studio 2005, I needed to get specific
information on the (non-portable) _stdcall attribute for functions.
When I found it, it was listed among all the other keywords that
Microsoft claims are "keywords for C++". What caught my attention
was the presentation of the keywords - again, as I have seen many
times before, to the C++-uninitiated, Microsoft appears to subtlely
portray their proprietary extensions as bona fide C++. For xample,
they write:
"Keywords are predefined reserved identifiers that have special
meanings. They cannot be used as identifiers in your program. The
following keywords are reserved for Microsoft C++. Names with leading
underscores are Microsoft extensions."
This statement alone implies that keywords *without* leading
underscores are *not* Microsoft extensions, but C++ proper.
From the GCC manual:
For each language compiled by GCC for which there is a standard,
GCC attempts to follow one or more versions of that standard,
possibly with some exceptions, and possibly with some
extensions.
This statement alone implies that GCC is indifferent to
conformance to any particular standard and may even actively
confuse their "exceptions" and "extensions" with true
conformance. Shame on them.
Given the number of different standards, you do have to make a
choice. G++ is to be commended for allowing the user to make
this choice, by means of a special option which says exactly
what is going on: -std=c++98 (or = something else).
Of course, the current version of C++ isn't (yet) one of the
acceptable choices, and you still only get an approximation --
no export, but no complaints about passing the address of a
function extern "C++" to pthread_create.
Realistically, compiler vendors (including g++, although I'm not
the word "vendor" really applies) have to deal with a number of
demands. About the most one can ask for is that they recognize
the standard, and take its requirements into consideration,
along with everything else. My impression today is that most
do. Maybe not always as much as I would like, but it's almost
never due to a lack of consideration for the standard itself.
I see 8
extra keywords, mostly having to do with .NET, that have nothing to do
with C++.
Well yes, but... Only one of them (gcnew) changes the meaning
of otherwise conforming C++ programs, as you ALMOST observe
below.
Microsoft also writes:
"The following table lists new keywords that have been added
to the C++ language. Note that some keywords consist of two
words separated by white space. These aggregate keywords are
considered keywords despite the fact that, used separately,
they have different meanings. The word ref, for example, used
without class is not a keyword and can be used as a regular
identifier. Likewise, by itself class denotes a native class.
But, used together, ref class defines a common language
runtime (CLR) reference type."
Not sure I totally approve of the solution, but at least they
recognize the problem, and are trying to address it.
[...]
There are none so blind...
(Totally off topic, but I'm not sure I recognize the reference.
In French, there is a saying "Il n'y a pas pire sourd que celui
qui ne veut pas entendre." Am I correct in supposing that it is
the same in English, except that one speaks in terms of view?)
--
James Kanze kanze.james@neuf.fr
Conseils en informatique orient?e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S?mard, 78210 St.-Cyr-l'?cole, France +33 (0)1 30 23 00 34
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]