Visual C++ 2005 and the ECMA C++/CLI standard

E

Edward Diener

Are there any differences between the version of C++/CLI as implemented
in Visual C++ 2005 and the ECMA-372 C++/CLI Language Specification of
December 2005 freely downloaded from ECMA ?

Asking this on MS's web forums brought the reply that only an MS VC++
Compiler Team person would be able to answer this question, but I am
hoping that someone here might know or point me to a web page which can
answer my question.

I think it is really important that there exists a document exactly
delineating the C++/CLI language as it exists in VC++ 2005 and if the
ECMA-372 standard is that document, that is fine, else I want to know
what is.
 
B

Bruno van Dooren

I think it is really important that there exists a document exactly
delineating the C++/CLI language as it exists in VC++ 2005 and if the
ECMA-372 standard is that document, that is fine, else I want to know what
is.

MSDN2 contains a complete description of the C++/CLI as it is implemented in
VC++2005,
though it is of course not a separate document.
I do not know however if it matches the ECMA document 100%.

--

Kind regards,
Bruno.
(e-mail address removed)
Remove only "_nos_pam"
 
E

Edward Diener

Jochen said:
Hi Edward!

http://msdn2.microsoft.com/

MS just need to distungish between docu for VS2002/2003 and the new for
VS2005. They decided to use a new subdomain...

VS2002/2003: http://msdn.microsoft.com/
VS2005: http://msdn2.microsoft.com/

It appears that the ECMA spec for C++/CLI mentioned in the latest MSDN
for VC++ 2005 is still a preliminary draft from Aug 2005 and not the
official one from ECMA's site, ECMA-372 dated December 2005. Perhaps
there are no changes from one to the other. Nevertheless it would be
nice to know whether MS supports ECMA-372 dated December 2005 fully,
since that is the final document.
 
J

Jochen Kalmbach [MVP]

Hi Edward!
It appears that the ECMA spec for C++/CLI mentioned in the latest MSDN
for VC++ 2005 is still a preliminary draft from Aug 2005 and not the
official one from ECMA's site, ECMA-372 dated December 2005. Perhaps
there are no changes from one to the other. Nevertheless it would be
nice to know whether MS supports ECMA-372 dated December 2005 fully,
since that is the final document.

I don´t understand the background of this question...

Currently there is (AFAIK) no other compiler availabe which implements
C++/CLI...

And regarding standards:
Currently I am not aware of *any* C++ compiler which fully implements
the C++ standard...

So I don´t see the point of your "fully implement"... but I think if MS
had mainly developed the C++/CLI, they also implemented as much as
possible...

--
Greetings
Jochen

My blog about Win32 and .NET
http://blog.kalmbachnet.de/
 
C

Carl Daniel [VC++ MVP]

Edward said:
It appears that the ECMA spec for C++/CLI mentioned in the latest MSDN
for VC++ 2005 is still a preliminary draft from Aug 2005 and not the
official one from ECMA's site, ECMA-372 dated December 2005. Perhaps
there are no changes from one to the other. Nevertheless it would be
nice to know whether MS supports ECMA-372 dated December 2005 fully,
since that is the final document.

IIRC, there are parts of C++/CLI that were proposed that are not
implemented. Whether those parts are included in ECMA 372, I do not know,
but I'll see if I can get someone from the VC++ team to provide an
authoritative answer.

-cd
 
E

Edward Diener

Carl said:
IIRC, there are parts of C++/CLI that were proposed that are not
implemented. Whether those parts are included in ECMA 372, I do not know,
but I'll see if I can get someone from the VC++ team to provide an
authoritative answer.

That would be very helpful.

Getting an authorative answer would be very helpful. While there are
many who will just use the VC++ 2005 general documentation for
programming C++/CLI, there are also many who want to have a C++/CLI
specifications to which they can refer in order to correctly program
C++/CLI using VC++ 2005. I think it is very important that Microsoft
specifies exactly what is the specification which defines their
implementation of C++/CLI for Visual C++ 2005.
 
C

Carl Daniel [VC++ MVP]

Carl said:
IIRC, there are parts of C++/CLI that were proposed that are not
implemented. Whether those parts are included in ECMA 372, I do not
know, but I'll see if I can get someone from the VC++ team to provide
an authoritative answer.

Here's the answer I got:

<quote>
All of the features in the language specification are in the product. There
are a few places where the compiler does not match the specification due to
timing issues. For example, the language specification does not reserve the
'generic' keyword whereas the compiler does.

Most other issues are subtle. For example, the language specification treats
boxing as a standard conversion, and the compiler treats boxing as a special
user defined conversion.
</quote>

If you encounter differences between the product and the spec that are
important to you, by all means file a bug report at:

http://lab.msdn.microsoft.com/productfeedback.

-cd
 
E

Edward Diener

Carl said:
Here's the answer I got:

<quote>
All of the features in the language specification are in the product. There
are a few places where the compiler does not match the specification due to
timing issues. For example, the language specification does not reserve the
'generic' keyword whereas the compiler does.

Understood. My own code will not be impacted, since I can not remember
ever having used "generic" as an identifier, but it is good to know the
difference.
Most other issues are subtle. For example, the language specification treats
boxing as a standard conversion, and the compiler treats boxing as a special
user defined conversion.

I do not know what practical difference that makes but I will study the
issue.

Thanks for finding this out. Again, if you have any influence on
Microsoft, it would be nice if you would encourage Microsoft to publish
even these subtle differences so that C++/CLI programmers could know
exactly what the VC++ 2005 implementation of C++/CLI entails vis-a-vis
the ECMA-372 standard. In the meantime I will take the ECMA-372 standard
as the definition of C++/CLI in VC++ 2005, keeping in mind the items you
mention above.
If you encounter differences between the product and the spec that are
important to you, by all means file a bug report at:

http://lab.msdn.microsoft.com/productfeedback.

I will do that. Thanks for your help.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top