C++的演進與比較
快速總結:C++ 的演進從 C++98 到 C++23,核心特色是逐步引入現代語言特性(如 Lambda、智能指針、協程、模組),其中 C++11 與 C++20 是兩次重大飛躍,C++14、C++17、C++23 則屬於增量優化。
🧩 C++ 各版本演進與特色比較
| 版本 | 發布年份 | 語言特性 | 標準庫特性 | 特點定位 |
|---|---|---|---|---|
| C++98 / C++03 | 1998 / 2003 | 命名空間、RTTI、模板、bool 型別、異常處理 | STL(vector, list, map, algorithm) | 首個 ISO 標準,建立基礎框架 |
| C++11 | 2011 | auto、decltype、Lambda、nullptr、右值引用與移動語義、constexpr、可變參數模板、range-based for、staticassert | 智能指針(uniqueptr, shared_ptr)、初始化列表 | 重大更新,被稱為「C++ 的大躍進」 |
| C++14 | 2014 | 泛型 Lambda(auto 參數)、返回型別推導、Relaxed constexpr、二進制字面量、數字分隔符 | std::make_unique | 小幅增強,主要是 C++11 的補強 |
| C++17 | 2017 | if constexpr、結構化綁定、折疊表達式、inline 變數 | std::optional、std::variant、std::any、std::string_view、std::filesystem | 語法糖與庫擴展,提升易用性 |
| C++20 | 2020 | Concepts(模板約束)、Modules(模組)、Coroutines(協程)、三向比較 <=>、更強 constexpr | Ranges 庫、std::span、日曆與時區庫、likely / unlikely | 第二次重大更新,引入現代編程基礎 |
| C++23 | 2023 | if consteval、Lambda 擴展(捕獲參數包、推導 this)、多維下標 obj[i,j] | std::expected、Ranges 擴展、std::print / println、std::mdspan | 增量優化,強化 constexpr 與錯誤處理 |
Sources:
🔑 演進重點
🎯 總結
| 13 | ||
|---|---|---|
| 1:23 AM - December 07, 2025 | ||
| 1:22 AM - December 07, 2025 | ||
| 1:22 AM - December 07, 2025 | ||
| 1:22 AM - December 07, 2025 | ||
| 1:22 AM - December 07, 2025 | ||
| 1:22 AM - December 07, 2025 | ||
| 8:20 PM - December 06, 2025 | ||
| 8:20 PM - December 06, 2025 | ||
| 8:20 PM - December 06, 2025 | ||
| 8:20 PM - December 06, 2025 | ||
| 8:20 PM - December 06, 2025 | ||
| 8:20 PM - December 06, 2025 | ||
| 8:20 PM - December 06, 2025 |