•1979: 首次實現引入類的C(C with Classes first implemented)ios
1.新特性:類、成員函數、繼承類、獨立編譯、公共和私有訪問控制、友元、函數參數類型檢查、默認參數、內聯函數、賦值符號重載、構造函數、析構函數、f()至關於f(void)、調用函數和返回函數(同步機制,不是在C++中)
2.庫:併發任務程序庫(不是在C++中)git
•1982: 發佈引入類的C之參考手冊(C with Classes reference manual published)程序員
•1984: C84的實現,參考手冊發佈(C84 implemented, reference manual published)正則表達式
•1985: Cfront 1.0算法
1.新特性:虛函數、函數和操做符重載、引用、new和delete操做符、const關鍵詞、範圍解析運算符::
2.新加入的庫:複數(complex)、字符串(string)、輸入輸出流(iostream)express
•1985: 《C++編程語言初版》(The C++ Programming Language, 1st edition)編程
•1989: Cfront 2.0數組
1.新特性:多重繼承、成員指針、保護訪問控制、類型安全聯接、抽象類、靜態和常量成員函數、特定類的new和delete
2.新庫:I/O 操做器安全
•1990: 《C++參考手冊註解》(The Annotated C++ Reference Manual)
此書從設計層面講述了該語言,包括一些尚未實現的特性,在ISO標準之前它成爲實際上的標準。多線程
1.新特性:命名空間、異常捕獲、內部類
•1991: Cfront 3.0
•1991: 《C++編程語言第二版》(The C++ Programming Language, 2nd edition)
•1990 ANSI C++委員會成立(ANSI C++ Committee founded)
•1991 ISO C++委員會成立(ISO C++ Committee founded)
•1998 C++98(ISO/IEC14882:1998)
1.新特性:運行時類型信息[RTTI(dynamic_cast, typeid)]、協變返回類型(covariant return types)、cast 操做符、可變型、布爾型、聲明狀況、模板例示、成員模板、導出
2.新庫:容器、算法、迭代器、函數對象(STL中)、區域設置、位集合、值向量、自動指針(auto_ptr)、模塊化字符串、輸入輸出流和複數
•1998 《C++編程語言第三版》(The C++ Programming Language, 3rd edition)
•1999 Boost由委員會成員成立,旨在開發新的高質量庫以做爲標準庫的候選庫(Boost founded by the committee members to produce new high-quality candidate libraries for the standard)
•2003 C++03 (ISO/IEC 14882:2003)
這是一個次要修訂版本,修正了一些錯誤。
1.新特性:初始化值
蒐集錯誤報告修復:125個,包括69號錯誤,該錯誤連續生成std::vector
•2006 性能技術報告[Performance TR (ISO/IEC TR 18015:2006) (ISO Store ) (2006 draft )]
•2007 2007擴展庫第一報告[2007 Library extension TR1 (ISO/IEC TR 19768:2007) (ISO store ) (2005 draft )]
這個技術報告是C++庫擴展,加入瞭如下內容:
1.源自Boost:引用包裝器(Reference wrapper)、智能指針(Smart pointers)、成員函數(Member function)、Result of 、綁定(Binding)、函數(Function)、類型特徵(type traits)、隨機(Random)、數學特殊函數(Mathematical Special Functions)、元組(Tuple)、數組(Array)、無序容器[Unordered Containers包括哈希(Hash)]還有正則表達式(Regular Expressions)
2.源自C99:math.h中同時也是新加入C99的數學函數、空白字符類、浮點環境(Floating-point environment)、十六進制浮點I/O操做符(hexfloat I/O Manipulator)、固定大小整數類型(fixed-size integral types)、長整型(the long long type)、va_copy、snprintf() 和vscanf()函數族,還有C99 的printf()與scanf()函數族的指定轉換
TR1除了一些特殊函數,大部分都被囊括進C++11。
•2010 數學特殊函數技術報告[2010 Mathematical special functions TR (ISO/IEC 29124:2010) (ISO Store ) (2010 draft )]
此TR是一個C++標準庫擴展,加入了TR1中的部分特殊函數,但那些函數以前沒有被包括進C++11:橢圓積分、指數積分、拉蓋爾多項式(Laguerre polynomials)、勒讓徳多項式(Legendre polynomials)、艾爾米特多項式(Hermite polynomials)、貝塞爾(Bessel)函數、紐曼(Newmann)函數、β函數和黎曼(Riemann)ζ函數
•2011 C++11 (ISO/IEC 14882:2011) (ISO Store) (ANSI Store ) (Post-publication draft )
對C++程序員,在現有慣例標準化和抽象概念提高方面有大量的改變可用。
1.新語言特性:自動(auto)和類型獲取(decltype)、默認和已刪除函數(defaulted and deleted functions)、不可更改(final)和重載(override)、拖尾返回類型(trailing return type)、右值引用(rvalue references)、移動構造函數(move constructors)/移動賦值(move assignment)、做用域枚舉(scoped enums)、常量表達式(constexpr)和文字類型(literal types)、列表初始化(list initialization)、受權(delegating)和繼承構造器(inherited constructors)、大括號或等號(brace-or-equal)初始化器、空指針(nullptr)、長整型(long long)、char16_t和char32_t、類型別名(type aliases)、可變參數模板(variadic templates)、廣義聯合體(generalized unions)、廣義POD、Unicode字符串文字(Unicode string literals)、自定義文字(user-defined literals)、屬性(attributes)、λ表達式(lambda expressions)、無異常(noexcept)、對齊查詢(alignof)和對齊指定(alignas)、多線程內存模型(multithreaded memory model)、線程本地存儲(thread-local storage)、GC接口(GC interface)、range for(based on a Boost library)、靜態斷言[static assertions(based on a Boost library)]
2.新庫特性:原子操做庫(atomic operations library)、emplace()和貫穿整個現有庫的右值引用的使用、std::initializer_list、狀態性的和做用域內的分配器(stateful and scoped allocators)、前向列表(forward_list)、計時庫(chrono library)、分數庫(ratio library)、新算法(new algorithms)、Unicode conversion facets
3.源自TR1:除了特殊的函數,TR1中所有都被囊括進來
4.源自Boost:線程庫(The thread library)、異常指針(exception_ptr)、錯誤碼(error_code)和錯誤狀況(error_condition)、迭代器改進[iterator improvements(std::begin, std::end, std::next, std::prev)]
5.源自C:C風格的Unicode轉換函數
6.蒐集錯誤報告修復:363個錯誤在2008草案中被解決,另外有322個錯誤接着被修復。其中的錯誤包括530號,它使得std::basic_string對象相連。
•2011 十進制浮點技術報告[Decimal floating-point TR (ISO/IEC TR 24733:2011) (ISO Store ) (2009 draft )]
這個TR根據IEEE 754-2008浮點算數標準(Floating Point Arithmetic):std::decimal::decimal3二、std::decimal::decimal6四、std::decimal::decimal128
•2012 標準C++基金會成立(The Standard C++ Foundation founded )
•2013 《C++編程語言第四版》The C++ Programming Language, 4th edition
*2014 C++14 (2014 final draft )
C++標準的下一個小修訂
1.新語言特性:變量模板(variable templates)、多態λ(polymorphic lambdas)、λ動捕獲(move capture for lambdas)、new/delete elision、常量表達式函數放寬限制(relax restrictions on constexpr functions)、二值文本(binary literals)、數字分隔符(digit separators)、函數返回類型推演(return type deduction for functions)、用大括號或等號初始符集合初始化類
2.新庫特性:std::make_unique、std::shared_mutex和std::shared_lock、std::index_sequence、std::exchange、std::quoted,還有許多針對現有庫的小改進,好比一些算法的雙距離重載(two-range overloads for some algorithms)、類型特徵的類型別名版本(type alias versions of type traits)、用戶定義字符串(user-defined string)、持續期(duration)和複雜數字文本(complex number literals)等等
3.蒐集錯誤報告修復:149號庫(149 library issues)
基礎庫技術規範(Library fundamentals TS), 文件系統技術規範(Filesystem TS)和其餘專業技術規範( experimental technical specifications)
•2017 C++17 C++標準的下一個主要修訂