Linked by Thom Holwerda on Sun 29th Jan 2006 16:06 UTC, submitted by Derek Jones
Microsoft Microsoft's C++/CLI Language Specification is an ECMA Standard (ECMA-372) and they are trying to fast track this document to be an ISO standard. The problem is that the language specified is very different from C++ and so is likely to create a great deal of confusion. Details can be found in the UK objections [.pdf], which suggest that a name distinct from C++ be used for the proposed language.
Thread beginning with comment 90663
To read all comments associated with this story, please click here.
And...
by sergio on Sun 29th Jan 2006 18:58 UTC
sergio
Member since:
2005-07-06

What's the advantage of using this "thing" instead of C#? Performance?

Reply Score: 1

RE: And...
by eMagius on Sun 29th Jan 2006 19:11 in reply to "And..."
eMagius Member since:
2005-07-06

It's easier to migrate existing C++ code to C++/CLI than it is to migrate it to C#. There would be few willing to start new projects in C++/CLI.

Reply Parent Score: 2

RE[2]: And...
by g2devi on Sun 29th Jan 2006 20:16 in reply to "RE: And..."
g2devi Member since:
2005-07-09

> It's easier to migrate existing C++ code to C++/CLI
> than it is to migrate it to C#.

I wouldn't be too sure of that. The changes in the destructor and constructor semantics alone would drive any C++ to C++/CLI porter up the wall. This would be especially true if your app uses any MFC or STL. I've done C to C++ porting. From experience, subtle differences (like the implicit typedef definition of structs and the C++ 'bool' type) can be a lot more maddening than blatently different features (classes, templates, etc). With subtle differences, your code still runs but you get the wrong behaviour and it's hard to recognize what's wrong because the old code "makes sense". With blatent differences, the compiler screams at you until you fix the problem.

Given the differences, to me it would make a lot more sense to either wrap your C++ code in a COM object and import that (.NET appears to integrate seemlessly with COM objects) or leave your pure C++ code alone and use .NET's PInvoke to call it from C#.

Reply Parent Score: 4