C++26
外觀

C++26是繼C++23之後正在修訂中的C++程式語言開放標準草案,其正式版本預計將於2026年發布。目前已發布的修訂草案為N4981。[1]
特性
[編輯]已被C++26接受的新特性包括:
語言特性
[編輯]- 未求值字串(Unevaluated strings)。
- 將
@
、$
和`
添加到基本字元集。 - 支援從
void*
進行constexpr
轉換。 - 使用者自訂的
static_assert
訊息。 - 無命名的占位變數(Placeholder variables)。
- 包索引(Pack indexing)。
- 結構化繫結(structured bindings)的屬性(Attributes)。
- 未初始化讀取的錯誤行為。
= delete("reason");
(可以為刪除函式提供刪除原因)。- 可變參數友元(Variadic friends)。
constexpr
放置new
表達式。- 將結構化繫結聲明作為條件使用。
- 摺疊表達式(fold expressions)中約束(constraints)的排序。
- 刪除指向不完整類型(incomplete type)指標應該是格式錯誤(ill-formed)的。
- 結構化繫結可以引入參數包(pack)。
- 常數求值(constant-evaluation)中允許丟擲異常。
constexpr
結構化繫結與對constexpr
變數的參照。- 牛津可變逗號(Oxford variadic comma),即「棄用前無逗號的省略號參數。語法
(int...)
與 C 語言不相容,對 C++ 也有害,可以很容易用(int, ...)
替代。」[2] - 移除棄用的陣列比較。
- 契約[3]
標準庫特性
[編輯]- 為
std::chrono
值類增加雜湊支援。 std::is_within_lifetime
類型檢測。- 檔案流(file streams)中的原生控制代碼(Native handles)支援。
- 將字串流(string streams)與
std::string_view
介面對接。 - 將
std::bitset
與std::string_view
介面對接。 <cmath>
與<complex>
提供更多的constexpr
支援。- 在比率(ratios)中添加新的 2022 年 SI 字首:
std::quecto
、std::ronto
、std::ronna
和std::quetta
。 std::copyable_function
。std::submdspan()
。<debugging>
:除錯支援模組。<linalg>
:基於 BLAS 的自由函式線性代數介面。- 向
std::complex
添加元組協定(tuple protocol)。 views::concat
。- 字串與字串視圖的拼接。
std::ranges::generate_random
。- 使用
std::println()
列印空白行。 std::formatter<std::filesystem::path>
格式化器。- 支援飽和算術(Saturation arithmetic),包括
std::add_sat
、std::div_sat
等。
注釋
[編輯]- ^ Working Draft, Standard for Programming Language C++ (PDF). Open Standards. ISO/IEC. 2024-04-16.
- ^ P3176R1: 牛津可变逗号. eisenwave.github.io. [2024-12-09].
- ^ 契约断言(自 C++26 起)- cppreference.com. en.cppreference.com. [2025-03-09].
另見
[編輯]![]() | 這是一篇關於電腦程式語言的小作品。您可以透過編輯或修訂擴充其內容。 |