Описание тега c++-cli
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.