What's NEW in C++/CLI Language

作為同時適用于本地/托管環境的新一代C++語言擴充,C++/CLI的定位與原有的Managed Extensions for C++基本一致,在CLR 2.0環境中,它主要承載了如下5個使命:

A.? 源碼級集成 (本地/托管/混合代碼編譯)
B.? 對象模型集成 (本地類型/指針、CLR類型/指針等)
C.? 組件模型集成 (元數據支持、屬性-事件語義、P/Invoke/COM Interop/C++ Interop集成等)
D.? 泛型及模板集成 (傳統Template、托管Template、Generics、泛型集合類)
E.? 大型框架集成 (STL.net等)

由于目前除了ECMA標準文本之外,還沒有一本關于C++/CLI的入門專著,因此,我根據自己的理解對其所引入的新特性進行了簡要的總結和分類,其詳細內容均可在MSDN中按圖索驥。在理解其目標定位的前提之下,從語言特性的角度來看,C++/CLI對ISO C++的擴充主要包括如下3方面,其中的下劃線部分是目前網上談論得比較多的dd:

1. Object-Model related
1.1 Memory Managements
???? ·managed handle & tracking reference
???? ·reference type / value type / interface
???? ·boxing / unboxing / stack sementics
???? ·interior_ptr<T> / pin_ptr<T>
1.2 Resource Managements
???? ·IDispose pattern
???? ·destructor / finalizer?
???? ·static constructor
1.3 Managed Array
???? ·multi-dimensional array
???? ·jagged array
1.4 New modifiers
???? ·class-modifiers: abstract / sealed
???? ·member function-modifiers: virtual / new / override

2. Component-Model related
2.1 Delegate & Event
???? ·bound delegate / unbound delegate?
???? ·event pattern / composing delegates
???? ·accessor of event: add / remove / raise
2.2 Managed Property
???? ·accessors: getter / setter
???? ·indexed property
???? ·multi-dimensional property
2.3 Exceptional Processing
???? ·managed exception
???? ·wraps of SEHException

3. Templates & Generics related
3.1 Generics
??? ?·generic functions / classes / interfaces / delegates
???? ·explicit constraints of type parameters based?on base-class?& interface
???? ·classes of generic collections (what, why, how)
3.2 Managed Template
??? ?·differences between templates and generics
??? ?·combining templates and generics
3.3 'for each?... in' statement

最后以blog風格廢話幾句,嗯... 總體感覺C++/CLI語義比MCPP更加清晰、規范,也更簡練,但并沒有絕大多數人強調的那般夸張,比方說我就不認為__box是多余的,新引入的隱式boxing和棧對象語義反倒還更容易鼓勵程序員忘卻裝箱性能損耗、妨礙優化并制造混亂...也許我從來沒有真正覺得MCPP麻煩過... 盡管C++/CLI已經成為了一門現實中的標準語言,盡管它不斷地追求著文法的完備和完美,但還是存在著許多令人覺得不自然的地方,也許這應當歸結成為:“微軟的產品,凡屬是不好用的,都是那些連微軟自己都沒想清楚的”。
不管怎么說,.Net發展至今,無論是何種語言,語言本身已不再重要(apl.net/ocaml.net/oberon.net/haskell.net,who care?),重要的是語言對CLR及組件環境的支持和理解,或許對我們而言,處于托管/非托管邊界上的C++/CLI所揭示的CLR思想和設計理念,比它本身所具備的語法特性更為關鍵。

轉載于:https://www.cnblogs.com/neoragex2002/archive/2005/12/04/290549.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277269.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277269.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277269.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

android 編譯器有問題,Android Studio 3.0 Beta 2發布:解決編譯器bug

5月18日&#xff0c;IT之家曾經報道&#xff0c;谷歌發布了Android Studio 3.0的測試版&#xff0c;新增了對Kotlin語言的支持&#xff0c;而日前&#xff0c;谷歌發布了Android Studio 3.0的Beta 2版本。此版本并無新功能加入&#xff0c;不過修復了一個困擾開發人員的bug&…

Kali安裝magescan評估工具

Magento &#xff08;麥進斗&#xff09; 是一套專業開源的電子商務系統。Magento設計得非常靈活&#xff0c;具有模塊化架構體系和豐富的功能。易于與第三方應用系統無縫集成。其面向企業級應用&#xff0c;可處理各方面的需求&#xff0c;以及建設一個多種用途和適用面的電子…

領域驅動設計在馬蜂窩優惠中心重構中的實踐

前言 正如領域驅動設計之父 Eric Evans 所著一書的書名所述&#xff0c;領域驅動設計&#xff08;Domain Driven Design&#xff09;是一種軟件核心復雜性應對之道。 在我們解決現實業務問題時&#xff0c;會面對非常復雜的業務邏輯。即使是同一個事物&#xff0c;在多個子業務…

將繼續深入學習網絡編程

一段時間了&#xff0c;已經可以熟練在Java使用Socket和nio編寫服務器應用程序&#xff0c;對一些流行的nio應用框架也有了較深的了解&#xff0c;也自己做了一些實現&#xff0c;并且應用到實踐中去。我想&#xff0c;我需要從三個方面繼續深入學習網絡編程&#xff1a;1、網絡…

鴻蒙系統發布會是什么時候,鴻蒙系統2.0發布時間是什么時候?或將與EMUI11一同發布!...

對于鴻蒙系統OS一直以來就備受大家的關注&#xff0c;作為華為自主研發的操作系統&#xff0c;它是華為之光&#xff01;很多人翹首盼望著它的到來&#xff0c;自1.0版本后鴻蒙系統2.0發布時間似乎確定下來了&#xff01;屆時會與EMUI11一同向大家介紹&#xff01;今日&#xf…

第二周web作業1:簡單的注冊表單

<!DOCTYPE HTML><html> <head> <meta charset"utf-8"> <title>black_tea home</title> </head> <body> <h1>注冊</h1> <form action""> <p>用戶名&#xff1a;<input t…

HZNU 2019 Summer training 8

A - Petya and Origami CodeForces - 1080A 題意&#xff1a;制造一份邀請函需要2份a物品&#xff0c;5份b物品&#xff0c;8份c物品&#xff0c;一個盒子里面有k份物品&#xff08;可以為a或b或c&#xff09;問你制造n份邀請函需要用多少個盒子 題解&#xff1a;加起來就行了…

OGRE分析之設計模式

這段時間靜下心來看了一下OGRE的源代碼&#xff0c;有一點心得&#xff0c;于是寫下來形成如下的幾篇零散的文章&#xff1a; 閱讀OGRE分析之設計模式&#xff08;四&#xff09; 摘要:Iterator Observer Strategy Template Method OGRE分析之設計模式&#xff08;三&#xff0…

android ota更新app,企業 OTA 更新 ?|? Android 開源項目 ?|? Android Open Source Project

Android 兼容性定義文檔 (CDD) 可更新軟件要求設備實現 SystemUpdatePolicy 類。SystemUpdatePolicy 可讓設備所有者 (DO) 應用(如果存在)控制系統更新的安裝。通知設備所有者無線下載 (OTA) 客戶端必須使用系統 API 將傳入的 OTA 更新通知給設備所有者應用。OTA 客戶端還必須包…

利用Flutter寫一個跨平臺的果核APP(3)——網絡請求

前言 緊接上文界面篇&#xff0c;上文中在構建布局的時候因為是直接將文字圖片顯示出來的&#xff0c;所以消息類Message&#xff0c;和日知錄類One都是采用的無狀態的StatelessWidget類&#xff0c;這次我們需要調用接口&#xff0c;然后將返回的數據動態的顯示到那兩個控件上…

2019 7 12

ICMP 協議封裝 ICMP 協議屬于網絡層協議 ICMP 數據的封裝過程 ICMP頭部 ICMP數據 IP頭部 上層數據&#xff08;ICMP報文&#xff09; 幀頭部 上 層 數 據 幀尾部 ping命令 C&#xff1a;>ping [t] [-l 字節數] [-i] ip_address | target…

android layer-list,Android layer-list的屬性和使用具體解釋

Android layer-list的屬性和使用具體解釋。layer-list是用來多個圖層堆疊顯示的&#xff0c;借這個特性能夠做一些特別的效果(比方&#xff1a;陰影、以下的效果等)&#xff0c;也能夠投機取巧。1.代碼片2.布局代碼和效果圖 (一定要注意在使用RadioGroup的時候要記的寫RadioBut…

上傳文件夾

前臺<% Page language"c#" Codebehind"ZJSJKSC.aspx.cs" AutoEventWireup"false" Inherits"DDTYDB.Module.WJGL.ZJSJKSC" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" ><HTML> <…

關于swiper的tab(選項卡)中設置了autoHeight沒有效果解決

autoHeight屬性使用看官網的示例&#xff1a;https://www.swiper.com.cn/api/parameters/294.html swiper的選項卡結構查看&#xff1a;https://www.swiper.com.cn/demo/indexsample/ swiper的tab的一般DOM節點為&#xff1a; <body> <div class"tabs"> …

UrlEncode

ASP.NET 快速入門教程/使用服務器控件/執行頁導航&#xff08;方案 2&#xff09;里有兩段代碼不是很清楚。 UrlEncode前面的相關內容為何有點不同呢&#xff1f; 源頁面向目標頁面發送參數的代碼。<script language"C#" runat"server"> voi…

android html郵件 messagecompose,android email 轉發附件丟失問題

在MessageCompose.java中將else if (ACTION_REPLY.equals(mAction)- || ACTION_REPLY_ALL.equals(mAction)- || ACTION_FORWARD.equals(mAction)) {}中ACTION_FORWARD提取成&#xff1a;else if(ACTION_FORWARD.equals(mAction)) …

數據庫字段屬性配置工具界面[用于代碼生成]

在CodeSmith中為了實現對數據庫中表字段的選擇和針對字段來設置屬性&#xff0c;決定用XML文件作為中間數據的交換方式&#xff0c;在CodeSmith中讀取數據庫對象的信息不再使用SchemaExplorer來讀取&#xff0c;而是轉為直接對XML文件的讀取。<?xml:namespace prefix o ns…

Codeforces 892E Envy

問題描述 小Q正在玩一個疊塔的游戲&#xff0c;游戲的目標是疊出盡可能高的塔。在游戲中&#xff0c;一共有n張矩形卡片&#xff0c;其中第i張卡片的 長度為a_i&#xff0c;寬度為b_i。小Q需要把所有卡片按一定順序疊成一座塔&#xff0c;要求對于任意一個矩形&#xff0c;它的…

Zookeeper環境安裝

源碼包下載&#xff1a; http://archive.apache.org/dist/zookeeper/zookeeper-3.4.10 集群環境&#xff1a; master 192.168.1.99 slave1 192.168.1.100 slave2 192.168.1.101 下載安裝包&#xff1a; # Mater wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.1…

鴻蒙系統用沒有安卓的代碼,套殼?不存在!純鴻蒙系統不含任何安卓代碼,其他手機廠商可使用...

眾所周知&#xff0c;華為的鴻蒙系統已經應用于許多華為機型上&#xff0c;例如Mate40、MataX2等&#xff0c;同時不少家電廠商也和華為合作推出了基于鴻蒙的終端設備&#xff0c;比如美的、老板等。那么&#xff0c;和華為處于競爭關系的手機廠商可以使用鴻蒙系統嗎&#xff1…