C++/CLI とは、マイクロソフト社が現在、ECMA、ISO に仕様提出中の C++ に対する CLI 拡張言語です。
マイクロソフト社は .Net Framework という CLR 上での Windows 操作フレームワークを元に OS の再構築を進めています。それが、
Code named "Longhorn" と呼ばれている OS です。
この OS では、OS 操作の基本となる API が WinFX というマネージド環境に基づく API への移行がすでに決定されております。マネージド環境は OLE - COM - COM+ と面々と繋がるオブジェクトのライフサイクルの管理という問題にガベージ・コレクトという形で管理しようという物で、ここで生成されたオブジェクトはその削除を CLR に管理されることとなります。そのため、マネージド、すなわち、オブジェクトの委託済みと呼ばれています。
それに対して、旧来からの C/C++ で直接、プログラム・モジュールの仮想メモリにアクセスするやり方はネイティブとして、危険なメモリ操作が可能なプログラミングとして、敬遠されつつあります。
ですが、果たして、ネイティブな言語は厄介者扱いされるような存在なのでしょうか。
そんなことはありません。
メモリ管理の問題や、リソース管理は本来、慎重な設計の元、プログラマ自身が管理するべき物であり、ガベージ・コレクトされることを期待して作るようなプログラミングはお行儀がよいものとは思えません。また、ネイティブなメモリ管理は処理速度が速く振る舞いが決定的で、なにより何でもできます。
そんなマネージドとネイティブの双方の良さを併せ持った言語として、C++ の CLI 拡張言語 C++/CLI は設計されました。
現在、未だベータ段階であり、基本機能の実装も終了しておりませんが、それを上回る魅力を感じさせてくれます。
ヽ(゚∀。)ノうぇね的には正直、 C# はもういらない、と言うくらいに、 C++/CLI の .Net Framework との親和性は高く、auto 変数並みにマネージド・オブジェクトを作っては捨てることができる楽さにくらくらです。
.Net Framework はいい加減、勉強しないといけないけど、Java と似たような言語を勉強し直すのは嫌だな、とか、何でも良いから C++ で組ませろと言う方、そんな方のために、 C++/CLI があります。
さぁ、やけになって、始めてみましょう。
だんだん、何となく、楽しくなってくるような気がしますよ。