C++各版本引入的新特性

光風霽月發表於2024-10-25

作者:momo
連結:https://www.zhihu.com/question/355400393/answer/3245544440
來源:知乎
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。

以下是C++各個版本的標準庫特性:

C++98:
引入了以下新的庫特性:
RTTI (執行時型別資訊),包括dynamic_cast和typeid
型別轉換運算子,如static_cast、dynamic_cast、const_cast和reinterpret_cast
mutable關鍵字
bool型別
模板例項化
成員模板
export關鍵字
標準庫增加了一些新的內容,包括:本地化支援(locales)、bitset、valarray、auto_ptr、模板化的字串、I/O流和複數1

C++03:
這是一個主要針對實現者的錯誤修復版本,以確保更大的一致性和可移植性。這個修訂版解決了92個核心語言缺陷報告,125個庫缺陷報告,並引入了一個新的語言特性:值初始化2

C++11:
引入了以下新的庫特性:
std::tuple
std::any
std::optional
std::variant
std::string_view
std::invoke
std::apply
std::filesystem
std::byte
並集對映和集合
並行演算法
std::sample
std::clamp
std::reduce
字首求和演算法
最大公約數和最小公倍數
std::not_fn
字串轉換為/從數字

C++14:
引入了以下新的庫特性:
標準庫型別的使用者定義字面量
編譯時整數序列
std::make_unique

C++17:
引入了以下新的庫特性:
概念庫
同步緩衝輸出流
std::span
位元操作
數學常數
std::is_constant_evaluated
支援陣列的std::make_shared
字串上的開始與結束檢查
檢查關聯容器是否有元素
std::bit_cast

C++20:
引入了以下新的庫特性:
概念庫
同步緩衝輸出流
std::span
位元操作
數學常數
std::is_constant_evaluated
支援陣列的std::make_shared
字串上的開始與結束檢查
檢查關聯容器是否有元素
std::bit_cast

C++23:
標準引入了以下新特性:
模組“std”:這是一個標準庫模組,預計將改善編譯。
if consteval:這是一個關於即時函式(immediate function)的特性,即consteval函式
Deducing this(P0847):這是C++23中最主要的特性之一。msvc在去年3月份就已支援該特性,可以在v19.32之後的版本使用。
std::expected(P0323):該特性用於解決錯誤處理的問題,增加了一個新的標頭檔案
Formatted Output(P2093):該提案就是 std::print()。
import std(P2465)
out_ptr(P1132r8)
auto (x) decay copy(P0849)
簡化隱式移動
修復範圍for迴圈中的臨時變數
多維和靜態運算子[]
Unicode改進
靜態constexpr在constexpr函式中

相關文章