[Mono-devel-list] intergration with other languages

Jonathan Pryor jonpryor at vt.edu
Thu Jun 10 07:06:50 EDT 2004


On Wed, 2004-06-09 at 15:43, Marcus wrote:
> I did not realize that C++ with multiple inheritance could be compiled
> to CIL. Does the compiler use the extensibility of the metadata to
> respresent the multiple-inheritance structure?

No.  The compiler just treats IL as another backend, similar to x86
output.  Class instances are actually "byte blobs", as far as the CLR is
concerned, and the IL is used to access specific offsets within the byte
blobs.

In this fashion, all of C++ can be described, but it makes certain CLR
features impossible on C++ classes.  (Reflection becomes virtually
meaningless on a byte blob, the GC is pretty much ignored since it
doesn't know anything about what classes are present and what they refer
to, requiring explicit deletes, etc.)

See:
	http://www.microsoft.com/mspress/books/sampchap/5959a.asp
	http://www.docendo.se/mspress/msp_online/samplechapter/0735617244.htm

 - Jon





More information about the Mono-devel-list mailing list