Re: Name change to MSDN C++/CLI column
"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.
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."
Apparently, the following are all new C++ keywords:
{ // quote
ref class
ref struct
No
Defines a CLR reference class
Classes and Structs (Managed)
Copy Code
value class
value struct
No
Defines a CLR value class
Classes and Structs (Managed)
Copy Code
interface class
interface struct
No
Defines a CLR interface
interface class
Copy Code
enum class
enum struct
No
Defines a CLR enumeration
enum class
Copy Code
property
Yes
Defines a CLR property
property
Copy Code
delegate
Yes
Defines a CLR delegate
delegate
Copy Code
event
} // quote
Pardon them for attempting to hi-jack C++? Not yet.
There are none so blind... The use of context dependent and
double keywords is an honest attempt by Microsoft to AVOID
conformance problems. These quasi keywords have meaning only
in contexts that would be ill formed in Standard C++.
Pardon you for being excessively biased? Not yet.
P.J. Plauger
Dinkumware, Ltd.
http://www.dinkumware.com
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]