chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

上個(gè)月,C++26時(shí)間表發(fā)布,將會(huì)在“并發(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時(shí)間表發(fā)布,改進(jìn)并發(fā)和并行性

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

此外,在C++23中,開(kāi)發(fā)者將獲得扁平化關(guān)聯(lián)容器。這些容器平衡了時(shí)間和空間復(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撰寫(xiě)了著名的《注釋C++參考手冊(cè)》(簡(jiǎn)稱(chēng)ARM)。

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

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

C++03

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

TR1

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

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

C++11

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

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

C++14

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

實(shí)際上,C++14相對(duì)之前的11并沒(méi)有太大改動(dòng),或者說(shuō)更像C++11標(biāo)準(zhǔn)基礎(chǔ)上的查漏補(bǔ)缺。C++14之后,還有17、20、23,所以,C++14更像個(gè)過(guò)渡版本。

C++17

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

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

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

C++20

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

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

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

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

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

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

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

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

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

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

    關(guān)注

    68

    文章

    20149

    瀏覽量

    247217
  • 編程語(yǔ)言
    +關(guān)注

    關(guān)注

    10

    文章

    1959

    瀏覽量

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

    關(guān)注

    22

    文章

    2122

    瀏覽量

    76714

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    汽車(chē)3C:PROFINET轉(zhuǎn)DEVICENET網(wǎng)關(guān)如何重塑制造邊界

    汽車(chē)3C:PROFINET轉(zhuǎn)DEVICENET網(wǎng)關(guān)如何重塑制造邊界 1 案例背景與項(xiàng)目痛點(diǎn) 在華南一家大型3C制造企業(yè)的車(chē)間里,六軸機(jī)械臂正執(zhí)行著精密裝配任務(wù)。這些機(jī)械臂原本服務(wù)于
    的頭像 發(fā)表于 12-02 16:22 ?362次閱讀
    <b class='flag-5'>從</b>汽車(chē)<b class='flag-5'>到</b>3<b class='flag-5'>C</b>:PROFINET轉(zhuǎn)DEVICENET網(wǎng)關(guān)如何重塑制造邊界

    UART 升級(jí) USB-C: 串口通信演變史

    的RS-232串口接口,取而代之的是USB,甚至更先進(jìn)的USB-C。UARTUSB-C,這段演進(jìn)究竟經(jīng)歷哪些關(guān)鍵階段?1.起點(diǎn):UART
    的頭像 發(fā)表于 11-17 10:54 ?974次閱讀
    UART 升級(jí)<b class='flag-5'>到</b> USB-<b class='flag-5'>C</b>: 串口通信演變史

    最開(kāi)始可以正常上傳C程序板子里面,上傳幾次之后便不能上傳,為什么?

    最開(kāi)始可以正常上傳C程序板子里面,上傳幾次之后便不能上傳,出現(xiàn)這種情況,請(qǐng)問(wèn)各位大佬這是什么情況呀
    發(fā)表于 11-10 07:07

    XT26G02C-讓數(shù)據(jù)管理變得如此簡(jiǎn)單!

    數(shù)據(jù)爆炸的時(shí)代 ,每個(gè)智能設(shè)備都需要一個(gè)可靠的"數(shù)據(jù)管家"。XT26G02C SPI NAND Flash就像一位訓(xùn)練有素的英國(guó)管家,隨時(shí)準(zhǔn)備為你處理各種數(shù)據(jù)存儲(chǔ)需求。 它不只是簡(jiǎn)單的存儲(chǔ)器,而是集
    的頭像 發(fā)表于 10-31 08:45 ?189次閱讀
    XT<b class='flag-5'>26G02C</b>-讓數(shù)據(jù)管理變得如此簡(jiǎn)單!

    基于TPS544C26的高效同步降壓轉(zhuǎn)換器設(shè)計(jì)與應(yīng)用

    Texas Instruments TPS544C26同步降壓轉(zhuǎn)換器是一款高度集成的降壓式轉(zhuǎn)換器,采用D-CAP+控制拓?fù)浣Y(jié)構(gòu),可實(shí)現(xiàn)快速瞬時(shí)響應(yīng)。所有可編程參數(shù)均可通過(guò)^I2C^接口進(jìn)行配置,而且
    的頭像 發(fā)表于 09-11 11:49 ?551次閱讀
    基于TPS544<b class='flag-5'>C26</b>的高效同步降壓轉(zhuǎn)換器設(shè)計(jì)與應(yīng)用

    TPS544C26EVM 35A降壓轉(zhuǎn)換器評(píng)估模塊技術(shù)解析與應(yīng)用指南

    Texas Instruments TPS544C26EVM轉(zhuǎn)換器評(píng)估模塊 (EVM) 用于TPS544C26 DC/DC直流/直流同步降壓轉(zhuǎn)換器,具有數(shù)字I2C和串行電壓識(shí)別 (SVID) 接口
    的頭像 發(fā)表于 09-10 15:10 ?640次閱讀
    TPS544<b class='flag-5'>C26</b>EVM 35A降壓轉(zhuǎn)換器評(píng)估模塊技術(shù)解析與應(yīng)用指南

    TPS548C26EVM評(píng)估模塊技術(shù)解析與應(yīng)用指南

    Texas Instruments TPS548C26EVM評(píng)估模塊專(zhuān)為T(mén)PS548C26 DC/DC同步降壓轉(zhuǎn)換器而設(shè)計(jì)。TI TPS548C26EVM評(píng)估模塊提供8 V至16 V輸入,輸出電流
    的頭像 發(fā)表于 09-02 14:18 ?638次閱讀
    TPS548<b class='flag-5'>C26</b>EVM評(píng)估模塊技術(shù)解析與應(yīng)用指南

    基美通用貼片電容C0805CC0805X系列產(chǎn)品特點(diǎn)和應(yīng)用場(chǎng)景介紹

    和應(yīng)用場(chǎng)景。C0805C系列(一)產(chǎn)品特點(diǎn)-容量范圍廣:C0805C系列電容的容量范圍較廣,幾皮法幾微法不等,可滿足不同電路對(duì)電容容量的需求。-高容差精度:部分
    的頭像 發(fā)表于 09-01 14:43 ?492次閱讀
    基美通用貼片電容<b class='flag-5'>C0805C</b>和<b class='flag-5'>C</b>0805X系列產(chǎn)品特點(diǎn)和應(yīng)用場(chǎng)景介紹

    “代步工具”“智能伙伴”,存儲(chǔ)如何支撐汽車(chē)升級(jí)之路

    我們手里的手機(jī),功能機(jī)“飛升”智能機(jī),經(jīng)歷幾個(gè)關(guān)鍵階段: 第一步,是交互方式的革新——按鍵
    的頭像 發(fā)表于 08-21 16:36 ?550次閱讀
    <b class='flag-5'>從</b>“代步工具”<b class='flag-5'>到</b>“智能伙伴”,存儲(chǔ)如何支撐汽車(chē)升級(jí)之路

    請(qǐng)問(wèn)cypd3125在 ( EZ-PD? CCGx Host SDK) 中的流程代碼如何main.c所有.c運(yùn)行里面有文件嗎?

    函數(shù)存在,但沒(méi)有聲明,也沒(méi)有 .c文件在那里,所以我看不到代碼流,我需要修改 type-c 的代碼,但我看不到來(lái)自 main 和其他 .c 的函數(shù)流文件和一些.c缺少文件,我需要從主
    發(fā)表于 08-15 06:58

    TPS544C26 4V 至 16V、35A SVID 和 I2C 同步降壓轉(zhuǎn)換器數(shù)據(jù)手冊(cè)

    TPS544C26 器件是一款高度集成的降壓轉(zhuǎn)換器,具有 D-CAP+ 控制拓?fù)?,可?shí)現(xiàn)快速瞬態(tài)響應(yīng)。所有可編程參數(shù)均可通過(guò) I 進(jìn)行配置^2^C 接口并作為新的默認(rèn)值存儲(chǔ)在 NVM 中,以最大限度地減少外部組件數(shù)量。這些特性使該器件非常適合空間受限的應(yīng)用。
    的頭像 發(fā)表于 06-07 13:59 ?610次閱讀
    TPS544<b class='flag-5'>C26</b> 4V 至 16V、35A SVID 和 I2<b class='flag-5'>C</b> 同步降壓轉(zhuǎn)換器數(shù)據(jù)手冊(cè)

    自動(dòng)駕駛經(jīng)歷哪些技術(shù)拐點(diǎn)?

    ,如今以AI為核心驅(qū)動(dòng)的自動(dòng)駕駛系統(tǒng),各大車(chē)企都在不斷加碼研發(fā)投入,試圖在未來(lái)市場(chǎng)中占據(jù)制高點(diǎn)。那自動(dòng)駕駛發(fā)展至今,經(jīng)歷哪些技術(shù)拐點(diǎn)呢? 自動(dòng)駕駛系統(tǒng)的發(fā)展歷程 自動(dòng)駕駛技術(shù)的發(fā)展是一個(gè)
    的頭像 發(fā)表于 04-27 15:54 ?627次閱讀
    自動(dòng)駕駛<b class='flag-5'>經(jīng)歷</b><b class='flag-5'>了</b>哪些技術(shù)拐點(diǎn)?

    LDR6500如何實(shí)現(xiàn)Type-C轉(zhuǎn)DP或DP轉(zhuǎn)Type-C

    ,實(shí)現(xiàn)Type-CDisplayPort的信號(hào)轉(zhuǎn)換。Type-C接口以其雙面可插、高速數(shù)據(jù)傳輸和多功能集成特
    的頭像 發(fā)表于 02-10 08:45 ?2079次閱讀
    LDR6500如何實(shí)現(xiàn)Type-<b class='flag-5'>C</b>轉(zhuǎn)DP或DP轉(zhuǎn)Type-<b class='flag-5'>C</b>

    Delphi、C++ Builder和Lazarus連接到Oracle數(shù)據(jù)庫(kù)

    Delphi、C++ Builder 和 Lazarus 連接到 Oracle 數(shù)據(jù)庫(kù) Oracle 數(shù)據(jù)訪問(wèn)組件 (ODAC) 是一個(gè)組件庫(kù),它為 32 位和 64 位平臺(tái)提供 Delphi
    的頭像 發(fā)表于 01-15 10:01 ?1349次閱讀

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

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