C++17标准制定完成
據(jù)Herb Sutter的博客所寫,在美國夏威夷Kona舉行的冬季會(huì)議上,ISO C++標(biāo)準(zhǔn)委員會(huì)最終完成了C++17標(biāo)準(zhǔn)的制定工作。下面對(duì)C++17的主要特性做簡要概括。
\u0026#xD;\n\u0026#xD;\nKona會(huì)議的主要議程是解決來自一些國家機(jī)構(gòu)的審查意見,并修復(fù)一些軟件故障,因此并未給出過多的新特性。特別需要指出的是,在Knoa會(huì)議上添加了一個(gè)新的std::byte類型,精簡了程序?qū)Α拔粚?dǎo)向”(byte-oriented)內(nèi)存訪問的處理方式。目前的實(shí)現(xiàn)是依賴于char(無論signed char還是unsigned char)類型的,鑒于char類型還承擔(dān)了字符類型和算術(shù)運(yùn)算類型的職責(zé),這種實(shí)現(xiàn)尚存在著不合理之處。另一方面,std::byte將會(huì)被分離出來作為一個(gè)專用類型。
\u0026#xD;\n\u0026#xD;\n其它C++17主要新特性包括:
\u0026#xD;\n\u0026#xD;\n- \u0026#xD;\n
可在constexprs中使用Lambda表達(dá)式,去除了預(yù)先存在的限制。使用constexprs定義的對(duì)象或函數(shù)可在編譯等階段就進(jìn)行求值,因此可以實(shí)現(xiàn)一些高級(jí)的模板參數(shù)或數(shù)組大小說明符。編譯器會(huì)確保constexprs對(duì)象或函數(shù)按設(shè)定的需求編譯,實(shí)現(xiàn)所描述的使用。
\u0026#xD;\n \u0026#xD;\n\u0026#xD;\n - \u0026#xD;\n
允許在Lambda表達(dá)式中,以值的形式得到*this,這對(duì)并行代碼或使用std::future的場景具有很大的影響,因?yàn)長ambda表達(dá)式在執(zhí)行時(shí)無法保證this的有效性。
\u0026#xD;\n \u0026#xD;\n\u0026#xD;\n - \u0026#xD;\n
增加了std::optional,可使用optinal類型表示某個(gè)已定義或尚未定義的值。如果用C++的措辭解釋,可以說optional是一種管理對(duì)象初始化狀態(tài)的封裝器。
\u0026#xD;\n \u0026#xD;\n\u0026#xD;\n - \u0026#xD;\n
增加了std::variant,可使用聯(lián)合體類型定義類似于“浮點(diǎn)型或長整型的聯(lián)合體”。
\u0026#xD;\n \u0026#xD;\n\u0026#xD;\n - \u0026#xD;\n
可推斷類模板參數(shù)的構(gòu)造函數(shù),這樣代碼編寫可簡化為:
\u0026#xD;\n \u0026#xD;\n
而非:
\u0026#xD;\n\u0026#xD;\nstd::lock_guard<:shared_timed_mutex std::shared_lock=\"\"><:shared_timed_mutex>\u0026gt; lck(mut_, r1);\u0026#xD;\n\u0026#xD;\n- 可推斷模板的無類型參數(shù),例如: \u0026#xD;\n
C++17新特性的列表非常長,這里無法一一列舉。推薦Stack Overflow網(wǎng)站上的一篇問題解答,其中對(duì)C++17新特性做了一個(gè)簡潔的歸納,更新至最近的Kona會(huì)議內(nèi)容,并提供了指向官方委員會(huì)文檔的鏈接。
\u0026#xD;\n\u0026#xD;\n查看英文原文: C++17 Is Ready
\u0026#xD;\n\u0026#xD;\n感謝張衛(wèi)濱對(duì)本文的審校。
\u0026#xD;\n給InfoQ中文站投稿或者參與內(nèi)容翻譯工作,請(qǐng)郵件至editors@cn.infoq.com。也歡迎大家通過新浪微博(@InfoQ,@丁曉昀),微信(微信號(hào):InfoQChina)關(guān)注我們。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的C++17标准制定完成的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牌面!曙光新型计算机亮相《流浪地球2》
- 下一篇: 夏普推出了NEC P627UL激光投影机