Кіріспе

C++/CLI бағдарламалау тілі – C++ бағдарламалау тілінің Common Language Infrastructure үшін өңделген түрі. Ол Visual Studio 2005 және одан кейінгі нұсқаларында қолданылады, сондай-ақ C# сияқты басқа .NET тілдерімен үйлесімді жұмыс істеуге мүмкіндік береді. Microsoft компаниясы C++/CLI-ді C++ үшін жасалған басқарылатын кеңейтулердің орнына енгізді. 2005 жылдың желтоқсан айында Ecma International C++/CLI сипаттамаларын ECMA 372 стандарты ретінде жариялады.

Синтаксис өзгерістері

C++/CLI-ді басқарылатын C++ (MC++) суперсетіне емес, өз алдына жеке тіл ретінде қарастыру керек (мысалы, жаңа кілт сөздер жиынтығымен). MC++-тың стандартты емес кілт сөздері немесе сияқты стильде болғандықтан, осыған байланысты маңызды синтаксистік өзгерістер енгізілді, әсіресе екі мәнді идентификаторларды жою және .NET ерекшеліктерін қосу бағытында. Көптеген қайшы келетін синтаксистер, мысалы, MC++-тағы оператордың бірнеше түрі бөлініп алынды: C++/CLI-де .NET анықтама түрлері жаңа кілт сөзбен құрылады (яғни, қоқыс жинағышпен басқарылатын жаңа). Сонымен қатар, C++/CLI .NET-тен жалпыламалар (generic) тұжырымдамасын енгізді (көп жағдайларда стандартты C++ үлгілеріне ұқсас, бірақ олардың іске асырылуында айқын айырмашылықтар бар).

Тұтқалар

MC++-да екі түрлі көрсеткіш болды: бір көрсеткіштер – стандартты C++ көрсеткіштері, ал екінші көрсеткіштер NET сілтемелік типтерімен жұмыс істеді. Бірақ C++/CLI-де көрсеткіштердің жалғыз түрі – стандартты C++ көрсеткіші, ал NET сілтемелік типтеріне «жеңдеу» (handle) арқылы, жаңа синтаксиспен қол жеткізіледі (оның орнына). Бұл жаңа құрылым, әсіресе басқарылатын және стандартты C++ кодтары қосылғанда тиімді; ол NET автоматты қоқыс жинауындағы объектілерді және бағдарламашының қандай объектілерді өздігінен жою керектігін нақтылайды.

C++/CX

WinRT-ге бағытталған C++/CX, толығымен басқарылмайтын кодты жасаса да, WinRT-тің сілтемемен саналатын компоненттері үшін ref және ^ синтаксисін пайдаланады, бұл компоненттер COM "объектілеріне" ұқсас.