色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

從C++98到C++26,經歷了什么?

strongerHuang ? 來源:51CTO技術棧 ? 2023-08-09 16:01 ? 次閱讀

8月的TIOBE編程語言編排榜已經更新,C++依然呈現增長趨勢,有望成為今年最受歡迎的編程語言。

3eeeece2-364b-11ee-9e74-dac502259ad0.png

作為一名程序員,2023年最應該關注的話題就是C++的標準更新。

C++標準遵循3年開發周期,并以發布年份命名。C++在臨發布的一年前會進入“功能凍結期(feature freeze)”,即版本開發進入半穩定狀態,不再添加重大功能及特性,著重于修復各種BUG。因此,直到2025年初,C++26都會增加新內容。

上個月,C++26時間表發布,將會在“并發和并行性方面有重大改進”。而已經推出的C++ 23版本則沿襲了C++17的傳統特征,完善了現有特性。但是,與C++ 98、C++11或C++20相比,改變略小。

3efd118c-364b-11ee-9e74-dac502259ad0.png

為理解C++下一步的發展方向,我們將C++放進歷史大背景中討論。

C++26時間表發布,改進并發和并行性

上個月,ISO C++委員會舉行會議,正式通過C++26時間表。當時,共有近180名成員參會。ISO C++標準委員會主席兼微軟本地語言架構師Herb Sutter發文詳細介紹了有關C++26的最新進展。

3f26d67a-364b-11ee-9e74-dac502259ad0.png

C++ 26首輪會議公告(圖源:Herb Sutter)

Herb Sutter在文章中表示:并發和并行小組目前仍在按計劃推進C++26的 std::execution和SIMD并行。該版本在“并發和并行性方面有重大改進”,但是,Herb Sutter并沒有透露具體改進內容與可能的技術細節。

值得一提的是,在本次會議上,委員會采納首批共計40份變更文件,其中的變更都相當小。

3f37408c-364b-11ee-9e74-dac502259ad0.jpg

C++ 26時間表(圖源:Herb Sutter)

據悉,與C++ 26相關的下兩輪會議將分別于11月及次年3月舉行,前者在美國夏威夷州科納舉行,由WorldQuant和Standard C++ Foundation主辦;后者在日本東京舉行,由Woven by Toyota主辦。

C++23標準

7月,C++23已完成更新,并進入了最終投票階段。

C++23是由國際標準化組織(ISO)和國際電信聯盟(ITU)頒布的編程語言C++標準。它最初于2017年6月正式發布,是2001年的ISO/IEC 14882:2001(C++11)的下一個迭代。

C++23完整地實現了C++的表達力,并使其對計算機科學和軟件工程更有用。

它的主要特性包括:模板參數捕獲、可變參數模板等。同時,它還引入了一些新的核心語言特性,如,UTF-8字符串字面量、更多的類型別名和using聲明等。

此外,C++23還引入了一些新特性,如,簡化的工作線程支持、原子操作、普通指針改進、區域性和字符編碼以及可以按程度進行編輯的新字符串操作。

最值得一提的是,C++23中引入了this推導,使C++輕松實現復雜技術。你可以直接使用import std導入標準庫,或者在std::print和std::println中應用C++20的格式字符串。

此外,在C++23中,開發者將獲得扁平化關聯容器。這些容器平衡了時間和空間復雜度。std::flap_map可取代std::map,而std::optional的接口將擴展為單子接口。

從C++98到C++20

那么,C++標準經歷了哪些歷史變革呢?

3f5aaefa-364b-11ee-9e74-dac502259ad0.png

C++98

20世紀80年代末,Bjarne Stroustrup和Margaret A. Ellis撰寫了著名的《注釋C++參考手冊》(簡稱ARM)。

當時,ARM根據獨立的C++實現定義了C++的功能;并且,ARM為第一個C++標準——C++98(ISO/IEC 14882)奠定了基礎。

值得一提的是,C++98包括:模板、包含容器和算法的標準模板庫(STL)、字符串和IO流。

C++03

在C++ 03(14882:2003)中,修正了一些微小的技術,但在社區中仍被稱為傳統C++。

TR1

2005年,令人興奮的事發生了。Technical Report 1(簡稱TR1)推出,是由C++標準化委員會成員建立的boost項目,推動現代C++向前邁出一大步,也為后續C++11的出現奠定了基礎。

具體來講,TR1有13個庫。這些庫也成為了下個C++版本的一部分,分別對應到正則表達式庫、隨機數庫、智能指針(如,std::shared_ptr)和哈希表。

C++11

C++11被稱為現代C++,它的許多特性從根本上改變了C++的編程方式。例如,C++11引入了TR1組件,還有移動語義、完美轉發、可變模板或constexpr等特性。

但是,這些并不是全部。隨著C++11的到來,我們還獲得了內存模型作為基礎的線程模型以及線程API

C++14

C++14是一個小型C++標準,引入了讀寫鎖、泛化lambda和泛化constexpr函數。

實際上,C++14相對之前的11并沒有太大改動,或者說更像C++11標準基礎上的查漏補缺。C++14之后,還有17、20、23,所以,C++14更像個過渡版本。

C++17

C++ 17有兩個突出的特性:并行的STL和標準化的文件系統。大約80個STL算法可使用執行策略執行。

這意味著,調用std::sort可以在C++中實現對容器vec并行排序的提示。此外,你還可以按順序進行指定排序或向量化。

就像C++11一樣,boost對C++17也產生了重大的影響,從boost中獲得了文件系統以及3種新的數據類型:std::optional、std::variant和std::any。

C++20

C++ 20的革新從根本上改變了編寫C++的方式,程度不亞于C++11,特別是以下四個重要特性:Ranges(范圍庫),Coroutines(協程),Concepts(概念)以及 Modules(模塊)。

·新的Ranges庫能夠直接在容器上表達算法、使用管道符組合算法,并將它們應用于無限數據流。

·Coroutines使異步編程在C++中成為主流。Coroutines是協作任務、事件循環、無限數據流或管道的基礎。

·Concepts將改變我們對模板的思考和編程方式,是有效模板參數的語義類別。Concepts讓你能夠直接在類型系統中表達你的意圖。如果出了什么問題,你會收到簡潔的錯誤信息

·Modules將克服頭文件的限制,也帶來了諸多好處。例如,不再需要預處理器。最終,我們還將擁有更快的構建時間和更簡單的包構建方式。

C++的下一步,神奇遞歸模板模式

C++的設計模式大致可分為三類:創建型模式、結構型模式和行為型模式。

而神奇遞歸模板模式(CRTP)也是C++的設計模式,精巧地結合了繼承和模板編程技術,可用來為C++的class提供額外的功能、實現靜態、多態等。

總之,CRTP實現了靜態多態,將會成為接下來C++的重要設計模式。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19312

    瀏覽量

    230035
  • 編程語言
    +關注

    關注

    10

    文章

    1945

    瀏覽量

    34773
  • C++
    C++
    +關注

    關注

    22

    文章

    2110

    瀏覽量

    73687

原文標題:從C++98到C++26,經歷了什么?

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    C6000C7000遷移

    電子發燒友網站提供《C6000C7000遷移.pdf》資料免費下載
    發表于 10-30 10:38 ?0次下載
    <b class='flag-5'>C</b>6000<b class='flag-5'>到</b><b class='flag-5'>C</b>7000遷移

    TMS320C6211遷移到TMS320C6211B

    電子發燒友網站提供《TMS320C6211遷移到TMS320C6211B.pdf》資料免費下載
    發表于 10-28 10:25 ?0次下載
    <b class='flag-5'>從</b>TMS320<b class='flag-5'>C</b>6211遷移到TMS320<b class='flag-5'>C</b>6211B

    TMS320C6211B/C6711/C6711B/C6711C遷移到TMS320C6711D

    電子發燒友網站提供《TMS320C6211B/C6711/C6711B/C6711C遷移到TMS320
    發表于 10-23 10:01 ?0次下載
    <b class='flag-5'>從</b>TMS320<b class='flag-5'>C</b>6211B/<b class='flag-5'>C</b>6711/<b class='flag-5'>C</b>6711B/<b class='flag-5'>C6711C</b>遷移到TMS320<b class='flag-5'>C</b>6711D

    TMS320C6712/C6712C遷移到TMS320C6712D

    電子發燒友網站提供《TMS320C6712/C6712C遷移到TMS320C6712D.pdf》資料免費下載
    發表于 10-18 11:12 ?0次下載
    <b class='flag-5'>從</b>TMS320<b class='flag-5'>C</b>6712/<b class='flag-5'>C6712C</b>遷移到TMS320<b class='flag-5'>C</b>6712D

    TMS320C6211B/C6711/C6711B和C6713遷移到TMS320C6713B

    電子發燒友網站提供《TMS320C6211B/C6711/C6711B和C6713遷移到TMS320C
    發表于 10-18 09:25 ?0次下載
    <b class='flag-5'>從</b>TMS320<b class='flag-5'>C</b>6211B/<b class='flag-5'>C</b>6711/<b class='flag-5'>C</b>6711B和<b class='flag-5'>C</b>6713遷移到TMS320<b class='flag-5'>C</b>6713B

    TMS320C64x遷移到TMS320C64x+

    電子發燒友網站提供《TMS320C64x遷移到TMS320C64x+.pdf》資料免費下載
    發表于 10-16 10:26 ?0次下載
    <b class='flag-5'>從</b>TMS320<b class='flag-5'>C</b>64x遷移到TMS320<b class='flag-5'>C</b>64x+

    TMS320C6713遷移到TMS320C672x

    電子發燒友網站提供《TMS320C6713遷移到TMS320C672x.pdf》資料免費下載
    發表于 10-16 10:12 ?0次下載
    <b class='flag-5'>從</b>TMS320<b class='flag-5'>C</b>6713遷移到TMS320<b class='flag-5'>C</b>672x

    TMS320C6455遷移到TMS320C6474

    電子發燒友網站提供《TMS320C6455遷移到TMS320C6474.pdf》資料免費下載
    發表于 10-14 09:20 ?0次下載
    <b class='flag-5'>從</b>TMS320<b class='flag-5'>C</b>6455遷移到TMS320<b class='flag-5'>C</b>6474

    TMS320C5515/05遷移到TMS320C5535/34/33/32

    電子發燒友網站提供《TMS320C5515/05遷移到TMS320C5535/34/33/32.pdf》資料免費下載
    發表于 10-12 10:53 ?0次下載
    <b class='flag-5'>從</b>TMS320<b class='flag-5'>C</b>5515/05遷移到TMS320<b class='flag-5'>C</b>5535/34/33/32

    JESD204B升級JESD204C時的系統設計注意事項

    電子發燒友網站提供《JESD204B升級JESD204C時的系統設計注意事項.pdf》資料免費下載
    發表于 09-21 10:19 ?3次下載
    <b class='flag-5'>從</b>JESD204B升級<b class='flag-5'>到</b>JESD204<b class='flag-5'>C</b>時的系統設計注意事項

    CB端:我的前端技術進階之路

    業務研發,搭建首個虛擬交易類小程序; - 2019年:C端轉向B端系統,負責萬家系統; - 2021年:作為前端主負責人,主導線下系統重構; - 2022年:作為前端研發一號位,0
    的頭像 發表于 07-23 14:13 ?351次閱讀
    <b class='flag-5'>從</b><b class='flag-5'>C</b>端<b class='flag-5'>到</b>B端:我的前端技術進階之路

    AM26C32四路差動線路接收器數據表

    電子發燒友網站提供《AM26C32四路差動線路接收器數據表.pdf》資料免費下載
    發表于 07-11 09:26 ?0次下載
    AM<b class='flag-5'>26C</b>32四路差動線路接收器數據表

    DS26C32AT/DS26C32AM四路差分線路接收器數據表

    電子發燒友網站提供《DS26C32AT/DS26C32AM四路差分線路接收器數據表.pdf》資料免費下載
    發表于 07-09 09:23 ?0次下載
    DS<b class='flag-5'>26C</b>32AT/DS<b class='flag-5'>26C</b>32AM四路差分線路接收器數據表

    DS26C32AMQML四路差分線路接收器數據表

    電子發燒友網站提供《DS26C32AMQML四路差分線路接收器數據表.pdf》資料免費下載
    發表于 07-01 11:42 ?0次下載
    DS<b class='flag-5'>26C</b>32AMQML四路差分線路接收器數據表

    C++在Linux內核開發中爭議成熟

    Linux 內核郵件列表中一篇已有六年歷史的老帖近日再次引發激烈討論 —— 主題是建議將 Linux 內核的開發語言 C 轉換為更現代的 C++。
    的頭像 發表于 01-31 14:11 ?642次閱讀
    <b class='flag-5'>C</b>++在Linux內核開發中<b class='flag-5'>從</b>爭議<b class='flag-5'>到</b>成熟
    主站蜘蛛池模板: 偷拍亚洲制服另类无码专区| 日本午夜精品理论片A级APP发布| 美女诱惑性感揉胸| 亚洲乱码爆乳精品成人毛片| 国产高清精品国语特黄A片| 欧美重口绿帽video| 8x8x我要打机飞在线观看| 久久久久久久99精品免费观看| 亚洲最大在线视频| 久久香蕉国产线看观看首页| 野花香在线观看免费观看大全动漫| 国产在线精品一区二区在线看| 性XXXXX搡XXXXX搡景甜| 国产精自产拍久久久久久蜜| 偷拍久久国产视频免费| 国产精品国产三级国产专区53 | 厕所RXXX| 色大姐综合网| 国产免费毛片在线观看| 亚洲精品国产SUV| 护士们的母狗| 中文国产在线观看| 免费看黄软件| 成年人深夜福利| 视频一区亚洲视频无码| 国产乱码卡二卡三卡4W| 亚洲国产剧情中文视频在线| 九九热这里都是精品| 91久久偷偷做嫩草影院免费看| 欧美日韩888在线观看| 囯产免费精品一品二区三区视频| 玩弄放荡人妻一区二区三区| 黄页免费观看| adc年龄确认大驾光临入口| 三级成年网站在线观看| 国产亚洲精品久久久久久无码网站 | 国产97视频在线观看| 亚洲国产精品无码中文字幕| 麻豆AV无码蜜臀AV色哟| 嘟嘟嘟WWW在线观看视频高清| 香蕉eeww99国产精品|