C 語言簡潔高效,但類型檢查弱、缺乏抽象機制。1980 年代,貝爾實驗室 Bjarne Stroustrup 博士在 C 基礎上引入類別概念,誕生最早原型「C with Classes」。
| 階段 | 關鍵事件 | 核心特性引入 |
|---|---|---|
| 早期 (80 年代初) | Stroustrup 發明 "C with Classes" | 類別、封裝 |
| 80 年代中期 | 更名為 C++ (++ 象徵進步) | 虛函數、運算符重載、多重繼承 |
| 90 年代初 | 模板、異常、RTTI、命名空間陸續加入 | 泛型程式設計基石確立 |
| 1998 | ISO/IEC 14882:1998 首個國際標準 (C++98) | 標準化穩定基線 |
| 2003 | C++03 技術修正 | 修正缺陷、細節完善 |
| 2011 | C++11 重大更新 (原 C++0x) | 自動型別、Lambda、智慧指標、移動語意、執行緒、regex... |
| 2014 | C++14 微調 | 泛型 Lambda、回傳型別推導、變數模板 |
| 2017 | C++17 大更新 | 結構化綁定、if constexpr、檔案系統、平行演算法、std::optional/variant/any |
| 2020 | C++20 里程碑 | Concepts、模組、協程、Ranges、格式化庫、三向比較 |
| 2023 | C++23 最新標準 | std::expected、std::mdspan、多維陣列、編譯期字串處理增強 |
從「C with Classes」到 C++23,四十年演進見證了程式語言理論與工程實踐的深度融合。模板引入是影響最深遠的決策,奠定泛型程式設計基石。理解歷史演進,有助於把握語言設計哲學,在現代 C++ 浪潮中做出更好的架構決策。