Описание тега c++-cli

C++/CLI основан на C++, модифицированном для возможности компиляции смеси машинного кода и кода для Common Language Infrastructure (CLI) Microsoft. Он заменяет Microsoft Managed Extensions для C++, нацеленный на усиление совместимости с C++.

C++/CLI - это язык программирования, основанный на C++ (ISO/IEC 14882:2003), который нацелен на платформу со смешанным интерфейсом + CLI. Первоначально он был разработан Microsoft и заменяет "Управляемые расширения для C++". Он официально стандартизирован в стандарте ECMA-372.

http://en.wikipedia.org/wiki/Common_Language_Infrastructure (CLI) является стандартизированными спецификациями для среды выполнения. Его основная реализация - платформа Microsoft .NET, но существуют альтернативные реализации, такие как Mono. Исполняемые файлы CLI хранятся в байт-коде на "Common Intermediate Language" (CIL), который запускается виртуальной машиной и собирается "Intermediate Language Assembler" (ILASM).

Есть несколько языков программирования, которые испускают чистый байт-код CIL, например C#. C++/CLI, с другой стороны, может генерировать как собственный код (совместимые с C++ части программы), так и код CLI.

У него есть две отдельные кучи, знакомая (родная) куча C++ и куча CLI со сборкой мусора. В язык добавлены новые функции, позволяющие правильно работать с этими двумя разрозненными концепциями, при этом трактуя их как можно более единообразно. Оба указателя C++Foo * p и ссылки CLI Bar ^ q разыменовываются таким же образом, *p = 1 / *q = 2 а также p->f() / q->g().

C++/CLI компилирует почти все стандартные программы C++ из коробки, одновременно открывая доступ к очень большой библиотеке CLI.