Nishant S has written an excellent introductory C++/CLI article for The Code Project. From the article:
What C++/CLI gives us?
- Elegant syntax and grammar -This gave a natural feel for C++ developers writing managed code and allowed a smooth transition from unmanaged coding to managed coding. All those ugly double underscores are gone now.
- First class CLI support - CLI features like properties, garbage collection and generics are supported directly. And what's more, C++/CLI allows jus to use these features on native unmanaged classes too.
- First class C++ support - C++ features like templates and deterministic destructors work on both managed and unmanaged classes. In fact C++/CLI is the only .NET language where you can *seemingly* declare a .NET type on the stack or on the native C++ heap.
- Bridges the gap between .NET and C++ - C++ programmers won't feel like a fish out of water when they attack the BCL
- The executable generated by the C++/CLI compiler is now fully verifiable.