C++マネージ拡張

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

C++マネージ拡張 (Managed Extensions for C++, Managed C++) は、C++.NET Frameworkアプリケーションを記述するための、マイクロソフトによるC++の拡張である。これによって、C++でネイティブコードだけでなく共通言語ランタイム (CLR) に向けたアプリケーションを記述することができる。

この拡張は、2002年にリリースされたVisual Studio .NETに含まれるVisual C++ .NETとともに登場した。2005年後半にリリースされたVisual Studio 2005では大きく改定され、C++/CLIという独立した言語になった。C++/CLIでは構文が明確化・単純化され、ジェネリクスなどの新しい機能をサポートするよう拡張された。「C++マネージ拡張」という言葉はC++/CLIより前の古い拡張を指す。

「マネージ (Manage)」とは、.NET仮想マシンによって管理されながら動作するという意味である。これによりバッファオーバーランチェックなどといった実行時チェックを行うことができ、サンドボックスとして機能するためセキュリティが向上する。マネージドC++で記述されたアプリケーションは通常のC++アプリケーションのようにネイティブコードコンパイルされるのではなく、共通中間言語 (CIL) と呼ばれる中間言語にコンパイルされる。

マネージド (Managed) C++のコードはガベージコレクタなどのCLRの機能を利用することができ、C#VB.NETなどといった.NET言語と相互運用をすることができる。Managed C++は.NET言語の中でも特殊な存在であり、.NETとネイティブC++の両方に直接的なアクセスができる唯一の言語である。一般の.NET言語はP/InvokeCOMを通してC++コードとやりとりする必要がある。このため、マネージドC++はしばしばマネージコードとアンマネージコードの橋渡しとして利用されることがある。

Visual Studio 2005以降のCLコンパイラは /clr:OldSyntax を付ける必要がある。

関連項目[編集]