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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

從C++98到C++26,經(jīng)歷了什么?

strongerHuang ? 來源:51CTO技術(shù)棧 ? 2023-08-09 16:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

作為一名程序員,2023年最應(yīng)該關(guān)注的話題就是C++的標(biāo)準(zhǔn)更新。

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

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

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

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

C++26時間表發(fā)布,改進(jìn)并發(fā)和并行性

上個月,ISO C++委員會舉行會議,正式通過C++26時間表。當(dāng)時,共有近180名成員參會。ISO C++標(biāo)準(zhǔn)委員會主席兼微軟本地語言架構(gòu)師Herb Sutter發(fā)文詳細(xì)介紹了有關(guān)C++26的最新進(jìn)展。

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

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

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

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

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

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

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

C++23標(biāo)準(zhǔn)

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

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

C++23完整地實現(xiàn)了C++的表達(dá)力,并使其對計算機科學(xué)和軟件工程更有用。

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

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

最值得一提的是,C++23中引入了this推導(dǎo),使C++輕松實現(xiàn)復(fù)雜技術(shù)。你可以直接使用import std導(dǎo)入標(biāo)準(zhǔn)庫,或者在std::print和std::println中應(yīng)用C++20的格式字符串。

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

從C++98到C++20

那么,C++標(biāo)準(zhǔn)經(jīng)歷了哪些歷史變革呢?

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

C++98

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

當(dāng)時,ARM根據(jù)獨立的C++實現(xiàn)定義了C++的功能;并且,ARM為第一個C++標(biāo)準(zhǔn)——C++98(ISO/IEC 14882)奠定了基礎(chǔ)。

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

C++03

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

TR1

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

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

C++11

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

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

C++14

C++14是一個小型C++標(biāo)準(zhǔn),引入了讀寫鎖、泛化lambda和泛化constexpr函數(shù)。

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

C++17

C++ 17有兩個突出的特性:并行的STL和標(biāo)準(zhǔn)化的文件系統(tǒng)。大約80個STL算法可使用執(zhí)行策略執(zhí)行。

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

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

C++20

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

·新的Ranges庫能夠直接在容器上表達(dá)算法、使用管道符組合算法,并將它們應(yīng)用于無限數(shù)據(jù)流。

·Coroutines使異步編程在C++中成為主流。Coroutines是協(xié)作任務(wù)、事件循環(huán)、無限數(shù)據(jù)流或管道的基礎(chǔ)。

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

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

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

C++的設(shè)計模式大致可分為三類:創(chuàng)建型模式、結(jié)構(gòu)型模式和行為型模式。

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

總之,CRTP實現(xiàn)了靜態(tài)多態(tài),將會成為接下來C++的重要設(shè)計模式。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19920

    瀏覽量

    235708
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1956

    瀏覽量

    36757
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2119

    瀏覽量

    75400

原文標(biāo)題:從C++98到C++26,經(jīng)歷了什么?

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    EE-128:C語言中的DSP:C調(diào)用匯編類成員函數(shù)

    電子發(fā)燒友網(wǎng)站提供《EE-128:C語言中的DSP:C調(diào)用匯編類成員函數(shù).pdf》資料免費下載
    發(fā)表于 01-07 13:48 ?0次下載
    EE-128:<b class='flag-5'>C</b>語言中的DSP:<b class='flag-5'>從</b><b class='flag-5'>C</b>調(diào)用匯編類成員函數(shù)

    VCOP Kernel-CC7000遷移工具用戶指南

    電子發(fā)燒友網(wǎng)站提供《VCOP Kernel-CC7000遷移工具用戶指南.pdf》資料免費下載
    發(fā)表于 11-20 13:45 ?0次下載
    VCOP Kernel-<b class='flag-5'>C</b><b class='flag-5'>到</b><b class='flag-5'>C</b>7000遷移工具用戶指南

    技術(shù)干貨驛站 ▏深入理解C語言:掌握C語言條件判斷,ifswitch的應(yīng)用

    在編程中,條件判斷語句是控制程序流程的核心元素之一。它們使得程序能夠根據(jù)不同的輸入和狀態(tài),做出相應(yīng)的決策。特別是在C語言中,條件判斷語句的使用極為廣泛,涵蓋了從簡單的if語句更復(fù)雜的switch
    的頭像 發(fā)表于 11-09 01:10 ?896次閱讀
    技術(shù)干貨驛站 ▏深入理解<b class='flag-5'>C</b>語言:掌握<b class='flag-5'>C</b>語言條件判斷,<b class='flag-5'>從</b>if<b class='flag-5'>到</b>switch的應(yīng)用

    C6000C7000遷移

    電子發(fā)燒友網(wǎng)站提供《C6000C7000遷移.pdf》資料免費下載
    發(fā)表于 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

    電子發(fā)燒友網(wǎng)站提供《TMS320C6211遷移到TMS320C6211B.pdf》資料免費下載
    發(fā)表于 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

    TMS320C6000 EMIFTMS320C6000主機端口接口

    電子發(fā)燒友網(wǎng)站提供《TMS320C6000 EMIFTMS320C6000主機端口接口.pdf》資料免費下載
    發(fā)表于 10-26 10:26 ?0次下載
    TMS320<b class='flag-5'>C</b>6000 EMIF<b class='flag-5'>到</b>TMS320<b class='flag-5'>C</b>6000主機端口接口

    TMS320C6211B/C6711/C6711B/C6711C遷移到TMS320C6711D

    電子發(fā)燒友網(wǎng)站提供《TMS320C6211B/C6711/C6711B/C6711C遷移到TMS320
    發(fā)表于 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

    電子發(fā)燒友網(wǎng)站提供《TMS320C6712/C6712C遷移到TMS320C6712D.pdf》資料免費下載
    發(fā)表于 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

    電子發(fā)燒友網(wǎng)站提供《TMS320C6211B/C6711/C6711B和C6713遷移到TMS320C
    發(fā)表于 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+

    電子發(fā)燒友網(wǎng)站提供《TMS320C64x遷移到TMS320C64x+.pdf》資料免費下載
    發(fā)表于 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

    電子發(fā)燒友網(wǎng)站提供《TMS320C6713遷移到TMS320C672x.pdf》資料免費下載
    發(fā)表于 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

    電子發(fā)燒友網(wǎng)站提供《TMS320C6455遷移到TMS320C6474.pdf》資料免費下載
    發(fā)表于 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

    電子發(fā)燒友網(wǎng)站提供《TMS320C5515/05遷移到TMS320C5535/34/33/32.pdf》資料免費下載
    發(fā)表于 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

    TMS320C5515遷移到TMS320C5517

    電子發(fā)燒友網(wǎng)站提供《TMS320C5515遷移到TMS320C5517.pdf》資料免費下載
    發(fā)表于 10-12 10:40 ?0次下載
    <b class='flag-5'>從</b>TMS320<b class='flag-5'>C</b>5515遷移到TMS320<b class='flag-5'>C</b>5517

    JESD204B升級JESD204C時的系統(tǒng)設(shè)計注意事項

    電子發(fā)燒友網(wǎng)站提供《JESD204B升級JESD204C時的系統(tǒng)設(shè)計注意事項.pdf》資料免費下載
    發(fā)表于 09-21 10:19 ?6次下載
    <b class='flag-5'>從</b>JESD204B升級<b class='flag-5'>到</b>JESD204<b class='flag-5'>C</b>時的系統(tǒng)設(shè)計注意事項
    主站蜘蛛池模板: 538视频这里只有精品 | 国产精品久久婷婷五月色 | 午夜电影三级还珠格格 | 性色AV一区二区三区V视界影院 | 亚洲 色 欧美 爱 视频 日韩 | 2018高清国产一区二区三区 | 在线精彩视频在线观看免费 | 欧美多人群p刺激交换电影 欧美多毛的大隂道 | 国产乱人偷精品视频A人人澡 | 无码人妻丰满熟妇啪啪网不卡 | 稚嫩挤奶h调教h | 亚洲 国产 日韩 欧美 在线 | 小舞被爆操| 亚洲AV人无码综合在线观看蜜桃 | 99er久久国产精品在线 | 久久综合九色综合国产 | 精品国产成人系列 | 青青草原国产 | 美女网站免费久久久久久久 | 日本A级作爱片金瓶双艳 | 嘟嘟嘟在线视频免费观看高清中文 | 国产免费不卡 | 啊好大好厉害好爽真骚 | 日韩欧无码一区二区三区免费不卡 | 99热久这里都是精品小草 | 久久婷五月综合色啪首页 | 性色香蕉AV久久久天天网 | 亚洲欧美另类无码专区 | 国产亚洲精品首页在线播放 | 一个人看的HD免费高清视频 | 少妇无码太爽了视频在线播放 | 国产视频a在线观看v | 奶好大下面流了好多水水 | 美女拉开腿让男生桶到爽 | 久久久无码精品一区二区三区 | 国产AV精品一区二区三区漫画 | 色色男_免费 | 亚洲一区免费香蕉在线 | cctv官网| 国产一卡 二卡三卡四卡无卡乱码视频 | 亚洲国产精品无码AV久久久 |

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品