成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

下個版本已定!C++自救新動作!

原創 精選
開發 前端
誠然,許多新語言都踩在舊語言的肩膀上,而且是從舊語言犯過的錯誤中汲取養料,茁壯起來。Rust從C++中學到了內存安全的重要性,Zig從C中選擇了更細分的內存分配,Go則帶上“指針”和“垃圾收集”兩件法寶自成一派。

撰稿丨云昭、千山

自去年年底,美國安全局(NSA)在其所發布的《Software Memory Safety》報告中點名批評C++之后,C++之父Bjarne Stroustrup一頓回懟后,做出決定:內部自救。現在,就讓我們看看下一個版本的C++,究竟有哪些大動作!

1、三年一版本,26版時間表已定

ISO C++標準委員會主席、微軟原生語言架構師Herb Sutter,6月16日發布了關于C++26的進展,承諾“將發布一個巨大的并發和并行版本”以及其他變化。

C++版本按發布年份命名,并遵循3年一個版本周期。該委員會在保加利亞瓦爾納舉行了在線會議,有近180名成員,并正式通過了C++26的時間表。

圖片

薩特表示,該時間表“與C++23的時間表相同,只是各個節點處向后加了三年”。時間表顯示,“以前從未見過”的新語言功能的最后日期是2024年第三季度,功能凍結的節點是在2025年第一季度。(PS:C++23的功能凍結是在2022年第一季度。)

值得注意的是:功能凍結并不意味著2026年停止開發新版本,而是暫停將新功能加載到這個特定序列中的檢查點。一般而言,第三年是一些繁瑣的錯誤修復的一年。

2、核心變更一覽

薩特說,委員會通過了40份“變更文件”。這其中,有兩份是“為所有就緒問題”提出的應用解決方案,其余38份都是單獨的更改(如錯誤修復、新功能等)。

目前為止提出的新功能大都比較低調。比如:添加了對_字符作為通配符的支持,并將@、$和`添加到基本字符集(就像對C23所做的那樣)。

舉個例子:編譯器開始支持draft-C++26語法:

std::lock_guard_(mutex);
auto [x,y,_]=f();
inspect(foo){_=>bar;};

標準庫更改

  • 添加了“function_ref”類型可擦除的可調用引用
  • 添加“格式化指針”允許對指針值進行漂亮的格式化,而無需reinterpret_cast首先轉換為整數類型。例如,現在可以這樣用:format("{:P}", ptr)
  • 添加“constexpr”允許編譯時使用標準庫的穩定排序等。

“格式化指針”允許對指針值進行漂亮的格式化,而無需reinterpret_cast首先轉換為整數類型。例如,這現在可以工作了:format("{:P}", ptr);

圖片

3、Hazard Pointer:C++26新增“危險指針”

危險指針是“只有危險指針的所有者才能設置其值,而任何數量的線程都可以讀取其值”的指針。

危險指針是一個單寫多讀指針,在任何時候最多可由一個線程擁有。只有危險指針的所有者可以設置其值,而任何數量的線程都可以讀取其值。所有者線程將危險指針的值設置為指向某個對象,以便向可能刪除該對象的并發線程指示該對象尚未安全刪除。

不過,這對C++安全來說都不是一場革命。Hacker News的一位開發人員表示:“如果你正在編寫無鎖并發數據結構,并且你需要一種方法來處理節點刪除后的延遲回收,那么危險指針很重要。這是一個非常奇怪的問題,很難成為‘內存安全問題的常見來源’。

另一位開發者進行了補充:“在迭代器中使用,這是危險指針的用例之一。危險指針可以在不令已有迭代器失效的情況下改變hashmap的key,雖然它適用于多線程,但如果寫入和讀取恰好在統一線程上,一樣有效。”

Sutter表示,“并發和并行子組仍在推進C++26的std::execution和SIMD并行”,這將是并發編程的重要功能。

4、后來者帶來的壓力

相較于Sutter對于C++標準的穩步發展的熱情,編程領域內對于新語言的呼聲卻越來越高。前不久,微軟首席技術官Mark Russinovich宣布,“是時候停止用C/C++啟動任何新項目,并在需要非GC語言的情況下使用Rust了。為了安全和可靠性,行業應該宣布這些語言不受歡迎。”

除了Rust,C++的另一個潛在競爭對手是谷歌的實驗性項目:Carbon;甚至就連Sutter自己,也提出了實驗性的cppfront,他說:“我的目標是探索是否有一種方法,可以使C++變得更簡單、更安全、更可工具化10倍!”cppfrond語言由Sutter于2022年底在CppCon上提出。

然而,新語言的一個問題是大量的現有代碼永遠不會被移植,這意味著改進C++仍然是值得的,即使對于那些認為它有固有缺陷或過于復雜的人來說也是如此。

5、越來越不像C++了

對于一門上世紀誕生的骨灰級編程語言來說,C++可謂非常成功。然而,許多C++愛好者中,流行一種說法:C++11以后,C++也越來越不像C++了。它完全是一門新的語言。

C++活生生把自己變成了一個筐,缺啥東西都得裝。網友抱怨:明明是一個聚焦底層的語言,為什么很多人幻想在標準庫里放各種迎合千奇百怪需求的上層庫呢?

與其這樣,還不如多關注C++本身底層的改進,好好維護發展庫生態。

圖片

截圖:知乎

此外,C++社區分裂,缺少統一標準,也是其近些年一直被詬病的地方。Windows陣營、谷歌陣營、QT陣營彼此割裂導致移植性不會像Java、Go那樣子絲滑。

圖片

截圖:知乎

6、寫在最后

誠然,許多新語言都踩在舊語言的肩膀上,而且是從舊語言犯過的錯誤中汲取養料,茁壯起來。Rust從C++中學到了內存安全的重要性,Zig從C中選擇了更細分的內存分配,Go則帶上“指針”和“垃圾收集”兩件法寶自成一派。

而C++曾經也是一位昂揚向上的少年,只不過經歷了40年之久的他,已經無須證明自己有多么成功。現在C++很清醒:它已經是一個老語種,身上的包袱很重,更需要穩定地負責任地承載著過去的版本,同時一路吸收著后來的其他語言“小弟”們創新點,慢慢前行。

參考鏈接:https://devclass.com/2023/06/19/c-26-is-already-taking-shape-says-herb-sutter/

責任編輯:武曉燕 來源: 51CTO技術棧
相關推薦

2023-10-31 17:57:52

C++編程語言

2009-12-10 08:57:44

Linux新版驅動

2023-02-08 07:05:44

2021-10-14 15:03:47

網絡安全谷歌攻擊

2023-09-21 18:16:57

Linux內核系統

2017-10-25 16:04:35

2023-10-14 12:05:59

KubuntuLinux

2019-07-23 09:12:08

2013-12-27 11:02:07

微信認證收費

2013-12-25 10:24:42

微信認證收費微信店鋪系統

2021-06-04 14:25:29

鴻蒙HarmonyOS應用

2011-01-19 11:34:52

Ubuntu中國版本Ubuntu

2021-11-15 12:14:49

零信任網絡安全網絡攻擊

2022-06-13 15:49:38

LinuxLinux 5.19

2020-03-31 18:50:33

微軟Windows操作系統

2021-11-16 22:56:05

Windows 11Windows微軟

2018-09-21 10:00:18

5G運營商通信網絡

2016-12-08 16:59:06

騰訊云海外生態業務

2017-01-13 14:22:23

Windows 10綠屏BSOD
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩专区 | 国产精品视频网 | 国产精品99久久久久久宅男 | 日韩欧美一级片 | 国产一区二区免费电影 | 91精品久久久久久久久 | 欧美a级网站 | av免费网 | 免费看av大片 | 草久久免费视频 | 国产精品美女一区二区 | 日韩午夜在线播放 | 色天堂影院 | 亚洲综合色网站 | 精品亚洲一区二区三区四区五区 | 日本免费一区二区三区视频 | 亚洲一区二区三区免费在线 | 中文字幕高清一区 | 三级视频在线观看电影 | 国产一级成人 | 欧美一区不卡 | 精品国产一区二区三区久久狼黑人 | 老司机深夜福利网站 | 久久久国产精品 | 久久婷婷国产麻豆91 | 国产精品久久午夜夜伦鲁鲁 | 免费精品视频 | 久草资源在线视频 | 一区二区福利视频 | 欧美一区永久视频免费观看 | 欧美全黄 | 亚洲日本欧美日韩高观看 | 成人黄色在线视频 | 欧美成人hd| 久久久影院 | 欧美成人a| 夜夜爽99久久国产综合精品女不卡 | 亚洲毛片在线观看 | 在线免费观看黄网 | 国产精品久久久久婷婷二区次 | 亚洲激情网站 |