C++/CLI
Paradigma | strukturovaný, imperativní, objektově orientovaný |
---|---|
Vznik | 2005 |
Autor | Microsoft |
Vývojář | Microsoft |
Poslední verze | Standard ECMA-372 (prosinec 2005) |
Ovlivněn jazyky | C++, Managed Extensions for C++, C# |
Web | https://www.ecma-international.org/publications/standards/Ecma-372.htm |
C++/CLI je rozšíření jazyka C++ pro platformu .NET. Umožňuje vytvářet smíšené binárky, kdy spustitelný soubor nebo dynamická knihovna obsahuje jako nativní kód, tak CIL. Druhou možností je vytvoření tzv. čisté binárky, ve které nejsou nativní instrukce a veškerý kód se překládá do CIL (tato konfigurace odpovídá módu „unsafe“ v C#). Třetí možností je vytvářet tzv. bezpečné (ověřitelné) binárky, které ale nemohou pracovat s neřízenou haldou a nemají tedy žádnou výhodu oproti programům napsaným přímo v C#.
CLR obsahuje speciální instrukce pro C++/CLI, aby bylo možné efektivně pracovat s neřízenou haldou v řízeném kódu. Při volání nativních funkcí, ať už zabudovaných do stejné binárky, nebo v externích dynamických knihovnách, se nepoužívá P/Invoke, ale rychlejší a typově bezpečnější mechanismus IJW. Dynamické knihovny vytvořené překladačem C++/CLI mohou být také volány z nativního kódu, je tak možné jednoduše používat knihovny napsané pro .NET z nativních aplikací. Na rozdíl od novějších verzí .NET (.NET Core) je C++/CLI možné používat pouze ve Windows.
Na C++/CLI je založeno další rozšíření jazyka C++ nazvané C++/CX, rovněž od Microsoftu, vyvinuté pro Windows Runtime. C++/CX používá téměř shodnou syntax, ale místo sestavení pro .NET vytváří nativní kód s komponentami COM.