IT用語集 › プログラミング › C++/CLI

C++/CLI

プログラミング Svenska → 更新: 2026-10-21

.NETランタイムと直接やり取りできる、MicrosoftによるC++の方言。古いC++が新しいマネージドコードと出会うときの接着剤となる言語。

Visual Studio 2005で導入され、ECMA-372として標準化された。不評だったManaged Extensions for C++の後継である。目新しかったのはハンドル構文で、String^ s = gcnew String("hello")のように書く。^はガベージコレクション対象のヒープ上のオブジェクトへの参照を表し、gcnewはネイティブヒープではなくそちらに確保する。

実際の用途は狭いが根強い。1つのC++/CLIファイルの中で20年前のCヘッダをインクルードしつつ、同じ翻訳単位からC#のクラスを呼べるため、ネイティブライブラリを.NET向けにラップする標準的な手段になっている。代償として言語がWindows専用であり、.NET Coreへの対応は2019年までなかった。好んでこれだけでプログラム全体を書く人はいない。

← 用語集に戻る