C++ for CLI

It’s been a while since I’ve paid any attention to what’s going on in the C++ world. I’ve somehow become a Java drone within a multinational semiconductor company. Now, how did that happen? Let your guard down for one minute, and you find yourself a cog in some grim engine of capitalist greed, mindlessly toiling away untold hours in a nondescript cubicle farm… but I digress.

Herb Sutter managed to pull my head out of the sand just long enough for me to notice that Microsoft is working to standardize an extension of C++ for the Common Language Infrastructure (CLI). The new language is called C++/CLI.

From the latest spec:

The goals used in the design of C++/CLI were as follows:

  • Provide an elegant and uniform syntax and semantics that give a natural feel for C++ programmers.
  • Provide first-class support for CLI features (e.g., properties, events, garbage collection, and generics) for all types including existing Standard C++ classes.
  • Provide first-class support for Standard C++ features (e.g., deterministic destruction, templates) for all types including CLI classes.
  • Preserve the meaning of existing Standard C++ programs by specifying pure extensions wherever possible.

Plum Hall is keeping a repository of all the public drafts of the spec.