近日,國際標準化組織(ISO)C++ 組,21 作業組(WG21)正式通過了最終版本的“C++20”草案,
WG21 C++ISO 委員會常任主席 Herb Sutter 說:“在 9 月 4 日,C++20 的 DIS(國際標準草案)投票結束,并獲得一致通過,”
“這意味著,C++20 現在獲得了最終技術許可,并且完成了 ISO 投票,我們希望在完成最后一輪 ISO 編輯作業后,C++20 能在 2020 年底正式發布,”
從歷史標準來看,2020 年的 C++ 版本非常龐大,Herb Sutter 表示,“它將是 C++ 自 C++11 以來最大的發行版”,這意味著它比過去 9 年來發布的 3 個發行版都要大,同時,這也是第一個已標準化的版本,
TIOBE CEO Paul Jansen 認為,新的 C++20 標準帶來了極大的正面影響,其積極趨勢趕超其他編程語言,
在 C++20 中,最重要的兩個特性是“模塊 (Modules)”和“協程 (Coroutine)”,
據悉,模塊(Modules)是由谷歌的 Richard Smith 提出的,它是針對頭檔案的改進,并在支持更大構建的同時有助于隔離宏的影響,
正如 Sutter 最近指出的那樣,C++20 標志著”大約 35 年來,C++ 首次添加了新特性,用戶可以在其中定義命名的封裝邊界“,
“到現在為止,我們有了三種這樣的語言特性,讓程式員可以(a)將一個用戶定義的名稱(b)給予某個隱藏自身實作的事物,從而創建自己“語言的力量”,它們是:變數(封裝了當前值)、函式(封裝代碼和行為)和類(封裝兩者以同時提供一堆狀態和函式),”
協程(Coroutine)則表示一個函式的泛化,C++ 的貢獻者在協程的提案中解釋說:“常規函式總是在起始處開始,然后在結束處退出,而協程還可以中止執行,之后在中斷的位置繼續執行,”
在一次郵件采訪中,C++ 之父 Bjarne Stroustrup 曾表示,“對許多人來說,協程是個新事物,為了從中受益,必須學習一種全新的風格,不過,我認為這樣做是值得的,因為這樣可以使并發編程更簡單、更快速,”并且,他還提到“協程已經是 Facebook 許多應用程式的基礎“,
對于 C++20,Bjarne Stroustrup 心懷期待,在去年 11 月,他因公出差來到中國上海,InfoQ 記者有幸對 Bjarne 博士進行了一次獨家專訪,在采訪中,我們談到了與 C++20 有關的幾個問題,

他說,“我現在很有信心,C++20 會非常出色,我經常提到,C++11 用起來就像是一種全新的語言,C++20 的提升幅度要比 C++11 更大,它會帶來全新的感覺,我可以提一下我認為對整個 C++ 社群而言會有極大幫助的特性,我覺得有兩個,”
第一個特性是概念(Concepts),它是對范式編程中介面的精確規范,旨在提升范式編程的易行性與靈活性,因此,我們將看到更多的范式編程,代碼呈現形式也將會有所變化,大家會獲得更好的錯誤提示資訊,并且可以更少地使用模板元編程,當然,編譯速度也會更快,
另一個重要新特性是模塊(Modules),如果使用它整理代碼,我們可以將代碼編譯速度大為提高(比如說快 5 倍以上),這一點非常重要,如此一來,大家就能夠更迅速地完成編譯而不需要在編譯的間隙去喝咖啡打發時間了,同時,你也將消除更多的程式缺陷,因為你的代碼將顯得更加規整,
“我覺得再過幾年,Concepts 與 Modules 會重要到讓大家都覺得不可或缺,”他說,
除此之外,C++20 的新特性還包括范圍、概念與約束(Constraints and concepts)、指定初始化(designated initializers)、計時、并行演算法和對并發編程的一些改進等等,
在郵件采訪中,他表示,“如果一個特性改變了我們對代碼和軟體開發的看法,那么我認為它就是一個主要的特性,”
當談到對 C++20 的期望,Bjarne Stroustrup 稱“C++20 將會非常棒!它有我為之奮斗了幾十年的特性,我期望很多特性能夠快速被采用,從 C++98 遷移到 C++11 很難,但是我們(標準委員會和實施者)在兼容性方面做得更好,所以從 C++11 遷移到 C++14 和 C++17 更容易,我希望向 C++20 的遷移會更容易一些,然而,如果你想從新的主要特性中獲益,你確實需要修改代碼,”
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/114853.html
標籤:其他
下一篇:我們妄想吃掉太陽_(小白的開始)
