[Mono-list] C++ compatible CLR?

Sergey Chaban serge@wildwestsoftware.com
Mon, 16 Dec 2002 18:53:35 +0200


> If MSVC++ supports multiple inheritence
> when compiling to CIL, the article that you read is now out-of-date.
> (I don't happen to have a Windows machine handy to check it.  Maybe
> someone else on this list can do so.)

Yes, multiple inheritence is fully supported.
It's not that article is out of date, because it was always supported :-)
that's just a common misconception. MI is supported but it's only available
to C++ programs and not to the outside world. This is not different to say COM.

You're also correct - it's implemented at the compiler level, it represents classes
as structs with custom layout for data memebers, vtable etc. and use corresponding
instructions (ldind, calli etc.).
Eiffel takes another approach to MI, for example.

I think people often confused by the difference between Managed Extentions to C++
and C++ compiled to IL. This is true for other languages as well, there is a difference
between what's available natively for a language that can generate IL, and what's exposed
to other .NET languages. So they keep telling that all these languages (present and future)
are just "C# in disguise" or something like that.