![]()
編譯 | 蘇宓
出品 | CSDN(ID:CSDNnews)
新一版本的 C++ 已經(jīng)正式完成!
就在 3 月底,ISO C++ 標(biāo)準(zhǔn)委員會在英國會議上完成了 C++26 標(biāo)準(zhǔn)的定稿。這意味著,繼 C++23 之后,下一代 C++ 語言規(guī)范已經(jīng)塵埃落定。
ISO C++ 標(biāo)準(zhǔn)委員會成員 Herb Sutter 將這一版本形容為“自 C++11 以來最有分量的一次更新”。
![]()
話不多說,我們先來看看 C++ 26 帶來了四大核心特性。
![]()
編譯期反射:元編程從“技巧”走向能力
C++26 正式引入編譯期反射。這一特性被不少人視為自模板機制誕生以來最重要的一次語言升級,它允許開發(fā)者在編譯階段查詢、描述并生成代碼,而且不會引入運行時開銷。
和 Java、C# 這類依賴運行時反射的語言不同,C++26 的反射完全發(fā)生在編譯期。這意味著類型信息遍歷、成員訪問乃至代碼生成,都可以在編譯階段完成,為序列化、ORM、框架自動化等場景提供更原生的支持。
從實際意義上看,這件事的影響在于:過去大量依賴模板“拼出來”的復(fù)雜元編程邏輯,開始有了更直接、可讀性更強的表達(dá)方式。也正因為如此,它被認(rèn)為可能會成為未來很長一段時間里 C++ 抽象能力演進(jìn)的核心基礎(chǔ)。
![]()
減少未定義行為,內(nèi)存安全強化:重編譯即獲安全提升
C++26 大幅減少未定義行為(UB),無需修改代碼,僅升級至 C++26 即可消除局部變量未初始化讀取的 UB,封堵一類高危漏洞來源。
同時,標(biāo)準(zhǔn)庫也加強了邊界安全檢查,覆蓋了包括 vector、span、string、string_view 在內(nèi)的一系列常用類型的高頻操作。整體思路不是引入一套全新的“安全語言”,而是在盡量不破壞現(xiàn)有代碼的前提下,讓默認(rèn)行為更安全。
根據(jù) Herb Sutter 的分享,這一方向并不是紙上談兵。類似方案此前已經(jīng)在 Google 和 Apple 的大規(guī)模代碼庫中落地,覆蓋規(guī)模達(dá)到數(shù)億行代碼。在這些實踐中,平均性能開銷大約在 0.3% 左右,但換來的是明顯的穩(wěn)定性提升。例如在 Google 內(nèi)部,這類機制已經(jīng)幫助修復(fù)了上千個 bug,并顯著降低了線上段錯誤的發(fā)生率。
這些經(jīng)驗被吸收進(jìn)標(biāo)準(zhǔn)之后,也讓 C++26 的“安全增強”更具現(xiàn)實意義。
![]()
合約編程:寫在代碼里的“使用說明”
C++26 正式納入合約(Contracts) 特性,支持函數(shù)前置條件、后置條件聲明與內(nèi)置斷言 contract_assert,替代傳統(tǒng)宏 assert,提升代碼可靠性與可維護(hù)性。
不過,這一特性在標(biāo)準(zhǔn)化過程中爭議不小。C++ 之父 Bjarne Stroustrup 就曾公開表達(dá)過不同意見,認(rèn)為當(dāng)前方案在復(fù)雜度和設(shè)計上仍有改進(jìn)空間。
盡管如此,委員會最終以 114 票贊成、12 票反對、3 票棄權(quán)通過定稿,合約正式保留在 C++26 中。
![]()
std::execution:統(tǒng)一并發(fā)與異步模型
在并發(fā)方面,std::execution(Sender/Receiver 模型)為 C++ 提供統(tǒng)一并發(fā)與并行執(zhí)行框架,支持結(jié)構(gòu)化并發(fā),從構(gòu)造上避免數(shù)據(jù)競爭,提升異步代碼安全性。
該框架已在工業(yè)界投入使用,但當(dāng)前文檔與配套庫尚不完善,上手成本較高,未來將逐步完善生態(tài)適配。
![]()
為什么這次可能會被更快采納
在會后總結(jié)中,Herb Sutter 對 C++26 的落地速度給出了一個相對樂觀的判斷。他認(rèn)為,這一版本的產(chǎn)業(yè)采納速度,可能會快于 C++17、C++20 甚至 C++23。
之所以做出了這樣的預(yù)判,Herb Sutter 也給出了兩個核心理由:
第一,這一組特性的用戶需求其實非常高。C++11 是上一次真正意義上“量大且影響廣”的版本,里面塞滿了絕大多數(shù)開發(fā)者日常都會用到的功能,比如 auto、range-for、lambda、智能指針、移動語義、線程和互斥鎖等等。此后幾輪三年一次的標(biāo)準(zhǔn)更新,也確實引入了一些“重量級”特性,比如并行 STL、concepts、協(xié)程和模塊,但實際情況是,它們對所有 C++ 開發(fā)者的影響力,并沒有達(dá)到當(dāng)年 C++11 那種級別。而這一次,C++26 的主打特性——反射和安全強化——很可能會改變這一點。所以即便你所在的公司在啟用 C++20 時動作比較慢,Herb Sutter 也覺得他們這次在升級到 C++26 時會更積極。原因很簡單,這一版帶來的高需求價值更多,對幾乎所有使用 C++ 的人來說,都是一次既實用又令人興奮的更新。
第二,符合標(biāo)準(zhǔn)的編譯器和標(biāo)準(zhǔn)庫實現(xiàn)正在很快跟進(jìn)。在 C++26 的開發(fā)過程中,GCC 和 Clang 在任意階段基本都已經(jīng)實現(xiàn)了大約三分之二的特性。到現(xiàn)在為止,GCC 已經(jīng)把反射和契約功能合并進(jìn)主干分支,只等正式發(fā)布。
![]()
![]()
下一步:C++29 將繼續(xù)補“安全短板”
在同一輪會議上,委員會也確認(rèn)了 C++29 的時間表,依然維持三年一個周期的節(jié)奏。
從當(dāng)前討論方向來看,下一階段的重點仍然是安全,尤其是內(nèi)存安全和類型安全。包括未定義行為的進(jìn)一步削減,以及 Safety Profiles 等提案,都在持續(xù)推進(jìn)之中。Bjarne Stroustrup 提出的類型安全剖面,也已經(jīng)進(jìn)入標(biāo)準(zhǔn)化討論范圍。
整體目標(biāo)很明確:在不犧牲“零開銷抽象”這一核心原則的前提下,讓 C++ 的默認(rèn)使用體驗變得更安全。
來源:https://herbsutter.com/2026/03/29/c26-is-done-trip-report-march-2026-iso-c-standards-meeting-london-croydon-uk/
【活動分享】"48 小時,與 50+ 位大廠技術(shù)決策者,共探 AI 落地真路徑。"由 CSDN&奇點智能研究院聯(lián)合舉辦的「全球機器學(xué)習(xí)技術(shù)大會」正式升級為「奇點智能技術(shù)大會」。2026 奇點智能技術(shù)大會將于 4 月 17-18 日在上海環(huán)球港凱悅酒店正式召開,大會聚焦大模型技術(shù)演進(jìn)、智能體系統(tǒng)工程、OpenClaw 生態(tài)實踐及 AI 行業(yè)落地等十二大專題板塊,特邀來自BAT、京東、微軟、小紅書、美團(tuán)等頭部企業(yè)的 50+ 位技術(shù)決策者分享實戰(zhàn)案例。旨在幫助技術(shù)管理者與一線 AI 落地人員規(guī)避選型風(fēng)險、降低試錯成本、獲取可復(fù)用的工程方法論,真正實現(xiàn) AI 技術(shù)的規(guī)模化落地與商業(yè)價值轉(zhuǎn)化。這不僅是一場技術(shù)的盛宴,更是決策者把握 2026 AI 拐點的戰(zhàn)略機會。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.