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:


🔑 演進重點

  • C++98/03:建立標準化基礎,確立 STL 與模板。
  • C++11:語言現代化,帶來 Lambda、智能指針、移動語義,極大提升表達力。
  • C++14:小修小補,讓 C++11 更好用。
  • C++17:引入結構化綁定、optional/variant 等,提升程式設計便利性。
  • C++20:模組化、協程、概念化,讓 C++ 更適合大型系統與並行程式。
  • C++23:持續優化 constexpr、錯誤處理(std::expected)、輸出(std::print),但缺乏標準網路庫仍是遺憾。

🎯 總結

  • C++11 與 C++20 是兩次里程碑式更新,分別帶來現代語言特性與模組/協程。
  • C++14、C++17、C++23 屬於增量優化,主要改善語法糖與標準庫。
  • C++ 的設計哲學是向後兼容,雖然語言越來越龐大,但開發者可選擇性使用所需特性。

Also See

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