国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

C++17 將會出現(xiàn)什么樣的變革?

開發(fā) 后端
這是我對當(dāng)前在厄巴納舉行的C++委員會會議上的提案方面文章的第三部分。 這次是全部關(guān)于子組變革的,對這方面,我寫了很多文章,所以這僅僅是第一部分。 前面那些部分是關(guān)于并發(fā)(concurrency)的, 然后 第二部分是關(guān)于核心,網(wǎng)絡(luò),模型以及未定義行為方面的。

這是我對當(dāng)前在厄巴納舉行的C++委員會會議上的提案方面文章的第三部分。 這次是全部關(guān)于子組變革的,對這方面,我寫了很多文章,所以這僅僅是***部分。 前面那些部分是關(guān)于并發(fā)(concurrency)的, 然后 第二部分是關(guān)于核心,網(wǎng)絡(luò),模型以及未定義行為方面的

變革

N4126 - 顯式默認(rèn)比較操作符

這個提議已經(jīng)在上一部分的反射部分提到了,在那里我們用反射和std::tie解決這個問題。這份提議想讓 = default變得合法; 對于所有的操作符 (>,<,==,!=, ...)。這些操作符仍然使用友元方法來實現(xiàn),如下例所示:

  1. class Thing 
  2.     int a, b; 
  3. public
  4.     // ... 
  5.     friend bool operator<(const Thing&, const Thing&) = default
  6.     friend bool operator>(const Thing&, const Thing&) = default
  7.     friend bool operator<=(const Thing&, const Thing&) = default
  8.     friend bool operator>=(const Thing&, const Thing&) = default
  9. }; 

N4127 - 檢查后的解引用條件

因為已經(jīng)提議過有范圍的for(ranged-for)循環(huán),這個提議轉(zhuǎn)移到auto和默認(rèn)類型.如果沒有提供類型,它也希望,在其它語句中,引進(jìn)或采用有范圍的for的語法,使之合法,例如if語句:

  1. std::weak_ptr<foo> wp; 
  2. if(x: wp.lock()) 

對于C++來說,這是一個巨大的改變,并且不是每個人都喜歡它,特別地,編譯器的創(chuàng)建者不得不處理這所波及的范圍.然而,如果委員會認(rèn)可了下個版本的有范圍的for循環(huán),那么在其他C++控制結(jié)構(gòu),如if,while,for等,中允許同樣的語法也就說得通了.

N4131 - 顯式的絕不應(yīng)該是隱式的

這篇文章對應(yīng)的是N4074,它爭論提議的變化內(nèi)容,即讓{expr}顯式的返回是錯誤的,因為顯式的決不應(yīng)該是隱式的.關(guān)于草案中的更多細(xì)節(jié),作者甚至給出了一個例子,說N4074提案可能導(dǎo)致未定義的行為.

N4135 -運行時按規(guī)定校驗的語言支持 (修訂8)

作者提供了很好的概述:

如果足夠仔細(xì),我們可以創(chuàng)建本質(zhì)上無缺陷的庫.但是即便是***的庫,只要使用不當(dāng),都可能產(chǎn)生災(zāi)難性的的后果.運行時按規(guī)定校驗的實際應(yīng)用:當(dāng)函數(shù)調(diào)用時,檢測前綴條件的過程,有助于在早期測試中,發(fā)現(xiàn)誤用的情況.同時也有助于提升開發(fā)速度,增強軟件健壯性.將按規(guī)定校驗拓展為開發(fā)階段而不僅僅是早期測試階段,將帶來更多長遠(yuǎn)的益處.

N4147 - 內(nèi)聯(lián)變量,或封裝表達(dá)式

作者再一次提供了很好的概述:

內(nèi)聯(lián)函數(shù)為對外無法暴露對象的接口,提供了合適的行為.盡管是不自然的樣版,通常還是會鼓勵用戶使用它們來包裝全局變量.其它的變通方法包括類的靜態(tài)數(shù)據(jù)成員,枚舉,宏和變量模板,所有這些都有奇怪的語法或缺陷,限制了適用性.這個提議在變量定義上面指定了inline標(biāo)識符,這意味著在語義上類似于內(nèi)聯(lián)函數(shù)的評估和鏈接.更通用的,這為命名值或非持續(xù)性變量提供了一種工具,它可以替代或補充 各種各樣的變通方法.

N4148 - 不允許來自易拷貝類型的不可訪問操作符

當(dāng)前對于易拷貝類型(trivially copyable type)的定義有一個缺陷:它對于不可訪問的/刪除的 拷貝/移動 構(gòu)造函數(shù)和賦值操作符同樣有效.一個易拷貝對象也可以通過使用std::memcpy來拷貝,特別是當(dāng)有一個易拷貝對象數(shù)組的時候,這在性能上更優(yōu).然而,對于一個刪除的/不可訪問的 拷貝/移動 構(gòu)造函數(shù)或者賦值操作符,這樣做是不明智的.作者提議更新標(biāo)準(zhǔn)里面的措辭,并提高特性,讓std::is_trivially_copyable針對不可訪問的/刪除的 拷貝/移動 構(gòu)造函數(shù)和操作符返回錯誤.

N4149 - 明確且合適的類

同樣的,這篇文章也有很好的概述:

一些類只在某些上下文中工作: 作用域守護(hù)(scope guard)作為子表達(dá)式通常是沒有用處的,表達(dá)式模板占位符作為局部變量也會出現(xiàn)問題.一個沒有使用的函數(shù)的結(jié)果可能意味著調(diào)用者會使用不同的協(xié)議,如std::async.這個提議拓展了類的聲明來阻止這類錯誤,并增加了通過類型替換自動解決它們的技術(shù),例如一個表達(dá)式模板的值類型.另外,不可移動的對象的生成變得更加容易處理.

增加的功能包括"自動評估"提議里面提到的.這個提議更具表現(xiàn)力,可以更廣泛的應(yīng)用,并且易于接受和使用.

N4150 - 別名集合屬性: 針對C++中restrict一樣的別名語義

這個提議想增加restrict修飾符到C++,因為它已經(jīng)存在于C99之中,同時,一些編譯器已經(jīng)提供了restrict作為一個C++拓展。由于目前沒有定義restrict修飾符,作者尋求定義如何正確的使用它,特別是在C++ 11中像lambda一樣的特性。

N4152 - 未捕獲的異常

這篇文章想提高std::uncaught_exception的可用性:

函數(shù) int std::uncaught_exceptions() 返回了異常對象的數(shù)目,這些對象已經(jīng)初始化,并被拋出或者被重新拋出,但是沒有激活任何處理程序.

N4154 - 操作符斷言

這個提議想讓assert(斷言)成為語言結(jié)構(gòu),而不是一個宏定義:

assert宏定義從未表現(xiàn)得像一個真正的函數(shù),在可以預(yù)見的未來,它將更像是一個操作符.在C中宏定義的表現(xiàn)方式,阻止了生產(chǎn)模式下的優(yōu)化,但是在調(diào)試模式下卻允許產(chǎn)生任意的副作用.增加assert作為一個關(guān)鍵字和內(nèi)置的操作符將產(chǎn)生益處,而不會存在任何副作用.

N4160 - 值約束

這篇文章分析了如何在C++中支持契約式編程(contract programming)風(fēng)格的特性.它嘗試著提供一個概況,關(guān)于如何在編譯時而不是運行時檢查的時候支持契約.作者定義了文檔的范圍,如下:

鑒于[N1962] 是一篇關(guān)于在C++之中增加契約式編程支持的相當(dāng)完整的提議,這個文檔提供的是問題范圍,而不是一個特定的提議.我們集中于確認(rèn)期望值,潛在的實現(xiàn)困難以及代價.

我們知道的其它契約式編程提議 — [N4075][N4110] — 建立在一個假設(shè)之上.即前置條件的支持,必須以提供某種形式之下:在函數(shù)調(diào)用之前評估前置條件,偶爾取消前置條件的評估以及安裝未履行契約的處理程序.在這篇文章中,我們不會想當(dāng)然的做這種假設(shè).運行時支持只是我們分析范圍的一個子集.我們更細(xì)致的探索了一個可選方案:集中于靜態(tài)分析.

N4164 - 前向引用

作為正式的通用引用, 類型T&& 總是右值(r-value)引用,除了作為模板參數(shù)或者使用了auto關(guān)鍵字。技術(shù)上仍然是右值引用,但是在這種情況下,表現(xiàn)上是非常不同。到目前為止,標(biāo)準(zhǔn)不識別這點,作者想介紹這個術(shù)語前向引用(forwarding reference),關(guān)于在模板和auto關(guān)鍵字之中的右值引用。

N4165 - 統(tǒng)一調(diào)用語法

成員函數(shù)的調(diào)用語法是x.f() 或者 x->f(),而非成員函數(shù)則是f(x).這在泛型編程代碼中會是一個問題,因為沒有統(tǒng)一的調(diào)用語法,而泛型編程代碼必須決定是調(diào)用成員函數(shù)還是非成員函數(shù)。

為了解決這個問題,作者提議允許使用語法x./->f()來調(diào)用自由函數(shù),如果函數(shù)的***個參數(shù)是x的指針或者引用。這也很好的滿足C的用法,當(dāng)函數(shù)***個指針參數(shù)是一個結(jié)構(gòu)體的時候。作者使用FILE*和fseek作為例子。

N4166 - 可移動的初始化列表

當(dāng)前,std::initializer_list不是可移動的,它是在移動語義變得重要之前設(shè)計的.同時,那個時候只提供拷貝語義看起來是足夠的,但是今天的情況已經(jīng)發(fā)生了變化.作者提議一個模板化版本的std::intializer_list,它繼承于非右值intializer_list類型:

  1. templatetypename T > 
  2. struct initializer_list< T && > 
  3.   : initializer_list< T > { 

這個構(gòu)造實現(xiàn)了所有權(quán)和移動語義.

N4172 - 命名參數(shù)

命名參數(shù)的語法看起來和提議中的 "有范圍的for(ranged-for)循環(huán)" 類似。但是在近似(幾乎一樣)的語法表達(dá)下面,兩者有不同的意義。在一個函數(shù)調(diào)用過程中,你可以像下面例子中這樣對命名參數(shù)賦值:

  1. void foo(int x, int y, int z); 
  2. foo(40,z: 30, y:20); 

在這個例子里面的函數(shù)調(diào)用過程中,參數(shù)z的值是30, 參數(shù)x的值是40。另外,非命名參數(shù)不能放在命名參數(shù)之后。

N4173 - 點操作符

同樣的,這篇文章也有很好的概述:

這個提議允許用戶定義點操作符(操作符.()),這樣我們可以提供"智能引用"類似于"智能指針".這個提議的要點在于,如果類Ref定義了操作符.(),那么默認(rèn)在Ref對象上的每個操作都在操作符.()的結(jié)果之前.不管怎樣,顯式聲明為Ref成員函數(shù)的操作,應(yīng)用到Ref對象上時不需要前置.程序員可以通過聲明操作符.()為private,來阻止指向一個引用對象的指針"滲透"到更大的程序之中.

N4174 - 調(diào)用語法: x.f(y) vs. f(x,y)

 

這個很像N4165 - 統(tǒng)一調(diào)用語法.簡單的描述:

基本的建議是定義x.f(y)和f(x,y)是等價的.另外,為了增加兼容性和模塊性,我建議探索,當(dāng)查詢可調(diào)用成員函數(shù)(或函數(shù)對象)時,忽略不可調(diào)用和不可訪問的成員函數(shù)的可能性,.

N4175 - 系統(tǒng)設(shè)定的比較

這份文檔廣泛的討論了在C++中預(yù)設(shè)的比較該是什么樣子,以及它能夠?qū)⒈容^運算符設(shè)置為默認(rèn)值有什么意義。本文和N4126有很大關(guān)聯(lián),同時也與N4239相對應(yīng)。

N4176 - 對比較的思考

Bjarne總結(jié)了下關(guān)于預(yù)設(shè)比較的討論:

這是一份摘錄了系統(tǒng)預(yù)設(shè)比較草稿的部分討論的摘要。它提出了許多提議并且根據(jù)一系列標(biāo)準(zhǔn)做了比較。我將會對關(guān)于比較標(biāo)準(zhǔn)的選擇有關(guān)的評論尤其感興趣(故意的雙關(guān)語)。

 原文鏈接:http://www.oschina.net/translate/where-will-evolution-lead-cpp17

責(zé)任編輯:張偉 來源: oschina
相關(guān)推薦

2012-08-07 09:37:23

虛擬化

2015-09-21 17:58:37

壁紙Ubuntulinux

2021-12-27 13:59:20

區(qū)塊鏈元宇宙技術(shù)

2021-03-27 22:13:48

6G系統(tǒng)設(shè)備

2010-06-22 11:07:42

JDK 7Java開發(fā)Java

2022-03-14 10:27:08

犯罪分子黑客網(wǎng)絡(luò)攻擊

2018-04-04 16:42:12

2015-04-08 10:40:09

2015-11-10 09:55:30

Swift調(diào)查期待

2015-11-12 09:27:13

C++最新進(jìn)展

2017-08-08 10:30:50

物聯(lián)網(wǎng)信息安全網(wǎng)絡(luò)

2013-06-26 10:49:09

云端大腦科技技術(shù)

2023-12-18 09:26:12

C++switchif

2023-12-18 10:11:36

C++17C++代碼

2022-11-18 10:17:10

2009-08-02 22:32:44

綜合布線系統(tǒng)

2021-09-14 16:32:11

物聯(lián)網(wǎng)IOT

2022-04-08 09:59:03

物聯(lián)網(wǎng)2.0物聯(lián)網(wǎng)

2024-12-18 06:00:00

C++17C++

2010-01-28 15:45:35

C++老手
點贊
收藏

51CTO技術(shù)棧公眾號

波多野结衣综合网| 精品剧情在线观看| 日本私人影院在线观看| 狠狠躁18三区二区一区| 在线看三级电影| 欧美精品久久一区二区| 午夜影院欧美| 国产免费黄色一级片| 亚洲草久电影| 免费观看黄色的网站| 亚洲视频1区2区| 午夜激情在线| 国产成人欧美在线观看| 日韩精品色哟哟| 成人信息集中地欧美| 日韩在线卡一卡二| 中出福利视频| 亚洲欧美日韩国产中文专区| 精品成人自拍视频| 亚洲欧洲免费无码| 偷偷要91色婷婷| 黄色日韩网站| 精品乱码一区| 伊人一区二区三区| 精品久久在线| 亚洲欧美在线网| 色国产综合视频| 日韩伦理一区二区三区| www.亚洲成人网| 欧美人狂配大交3d怪物一区| 岳的好大精品一区二区三区| 毛片在线播放视频| 亚洲国产成人精品久久久国产成人一区 | 日本一本草久在线中文| 一本一本久久a久久精品牛牛影视| 亚洲激情久久| 91国产精品视频在线观看| 精品视频中文字幕| 一本色道久久综合亚洲精品不卡| 成年免费网站| 欧美成人精品一区二区| 国内外成人在线| av电影免费在线观看| 亚洲在线www| 一区二区三区精品在线| 这里视频有精品| 日韩中文字幕在线不卡| 欧美一级专区免费大片| 亚洲乱码精品| 老司机色在线视频| 日韩女优人人人人射在线视频| 99精品视频一区二区三区| 涩涩视频在线| 亚洲永久激情精品| 亚洲成人黄色在线| 免费高清视频精品| freexxx性亚洲精品| 一本色道久久加勒比精品| 红杏成人性视频免费看| 久久久久久久久久久视频| 精品亚洲aⅴ在线观看| 美女日韩在线中文字幕| 午夜精品一区| 国产高清自拍一区| 欧美在线三级电影| 日韩天天综合| 一二三四区在线观看| 神马影院我不卡午夜| 欧美成人官网二区| 狠狠色丁香九九婷婷综合五月| 182在线视频观看| 最新欧美日韩亚洲| 亚洲网站在线观看| 91麻豆国产福利精品| 精品一区二区三区亚洲| youjizzxxxx18| 91精品国产高清| 一区二区三区欧美亚洲| 国产精品伦理久久久久久| 国产小视频在线| 欧美午夜欧美| 亚洲人av在线影院| 久久综合久久久久88| 91欧美极品| 日本h片在线看| 鲁鲁视频www一区二区| 亚洲国产日韩精品在线| 丁香啪啪综合成人亚洲小说 | 久久国产尿小便嘘嘘| 粗暴91大变态调教| 免费高清特黄a大片| 国产激情三区| 91香蕉视频污版| 亚洲最大免费| 91欧美精品| 两根大肉大捧一进一出好爽视频| 久久99久久亚洲国产| 有坂深雪av一区二区精品| 先锋资源久久| 欧美性爽视频| 亚洲成人av在线电影| 亚洲大胆av| 欧美三级网站| 人人干人人干人人| 成人激情视频免费在线| 在线播放一区二区三区| 国产东北露脸精品视频| 卡通动漫精品一区二区三区| 三级在线播放| 亚洲一区3d动漫同人无遮挡 | 亚洲精品乱码久久久久久按摩观| 成人禁用看黄a在线| 里番精品3d一二三区| 99re在线视频| 无码中文字幕色专区| 成人激情免费在线| 亚洲欧洲一区二区三区久久| 国产精品高潮呻吟久久| 亚洲男人天堂2024| 尤物99国产成人精品视频| 国内精品久久久久影院 日本资源| 欧美床上激情在线观看| 欧美一级大片在线观看| 91文字幕巨乱亚洲香蕉| 久久在线免费观看视频| 日韩精品视频在线看| 特黄国产免费播放| 亚洲毛片aa| 热99精品里视频精品| 日韩一区二区三区在线| 国产亚洲精品福利| 99久久人爽人人添人人澡| 欧美国产亚洲另类动漫| 欧美视频在线免费看| 欧美吻胸吃奶大尺度电影| 亚洲成人网av| 欧美精品激情视频| 午夜精品福利视频| 91性感美女视频| 国产精品老牛| 亚洲污视频在线观看| 成人免费视频网站入口| 北条麻妃一区二区三区中文字幕 | 精品久久久久av影院 | 欧美日韩中文字幕在线播放 | 亚洲iv一区二区三区| 日韩在线视频国产| 欧美日本在线播放| 国产精品美女www爽爽爽| 免费在线观看一区二区三区| 国产中文字幕一区二区三区| 欧美gay视频| www.中文字幕久久久| 欧美午夜aaaaaa免费视频| 天天人人精品| 亚洲最大的成人网| 久久久久亚洲精品成人网小说| 亚洲激情成人网| 欧美在线视频日韩| 亚洲色欲色欲www| 国产成人自拍网| 香蕉久久夜色精品| 在线电影一区二区| 深爱激情久久| 99精品女人在线观看免费视频| caoporn97在线视频| 在线免费视频福利| 亚洲精品自拍网| 性欧美大战久久久久久久| 日本一区二区三区精品视频| 91亚洲精品在线| 国产成人+综合亚洲+天堂| 久久中文字幕国产| 一区二区三区高清国产| 精品久久久久久最新网址| 欧美亚洲一区三区| 亚洲高清免费在线| 亚洲欧美视频在线观看| 久久婷婷久久一区二区三区| 国产一区二三区| 精品在线免费视频| 奇米综合一区二区三区精品视频| 亚洲私人影院| 欧美精品午夜| 欧美黄色一区| 欧美精品国产| 影音先锋日韩资源| 亚洲一级二级| 亚洲大胆视频| 国产日本精品| 免费亚洲一区| 石原莉奈在线亚洲三区| 视频一区二区不卡| 秋霞影院一区二区| 精品一区二区三区在线播放视频 | 国产天堂av| 国产精品99久久99久久久| 国产成人综合美国十次| 免费观看视频www| 午夜激情影院|