Thanks to Peter Drayton for describing some features of MC++ which are not supported in C#, and some sample code:
- exception filters
- family-and-assembly member accessibility
- on-heap manipulation of boxed value types without adjustor interfaces
I don't think these are quite compelling enough to persuade me to prefer MC++ over C# for managed work.
Interesting to note that even MC++ doesn't expose all of the CLR's exception handling capabilities. This discussion has been useful in making me realise I need to know more about the relationship between IL+CLR and the languages that sit on top of them. A quick search on Amazon brings up the following book as maybe worth looking at: Compiling for the .NET Common Language Runtime by John Gough.