##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# History of C++

From cppreference.com
< cpp‎ | language

## [edit] Early C++

- 1979: C with Classes first implemented

1. New features: classes, member functions, derived classes, separate compilation, public and private access control, friends, type checking of function arguments, default arguments, inline functions, overloaded assignment operator, constructors, destructors, f() same as f(void), call-function and return-function (synchronization features, not in C++)
2. Libraries: the concurrent task library (not in C++)

- 1982: C with Classes reference manual published
- 1984: C84 implemented, reference manual published
- 1985: Cfront 1.0

1. New features: virtual functions, function and operator overloading, references, new and delete operators, the keyword const, scope resolution operator
2. Library additions: complex, string, iostream

- 1985: The C++ Programming Language, 1st edition
- 1986: The "whatis?" paper documenting the remaining design goals, including multiple inheritance, exception handling, and templates.
- 1987: C++ support in GCC 1.15.3
- 1989: Cfront 2.0

1. New features: multiple inheritance, pointers to members, protected access, type-safe linkage, abstract classes, static and const member functions, class-specific new and delete
2. Library additions: I/O manipulators

- 1990: The Annotated C++ Reference Manual

This book described the language as designed, including some features that were not yet implemented. It served as the de-facto standard until the ISO.

1. New features: namespaces, exception handling, nested classes, templates

- 1991: Cfront 3.0
- 1991: The C++ Programming Language, 2nd edition

## [edit] Standard C++

- 1990 ANSI C++ Committee founded
- 1991 ISO C++ Committee founded
- 1992 STL implemented in C++
- 1998 `C++98` (ISO/IEC 14882:1998)

1. New features: RTTI (dynamic_cast, typeid), covariant return types, cast operators, mutable, bool, declarations in conditions, template instantiations, member templates, export
2. Library additions: containers, algorithms, iterators, function objects (based on STL), locales, bitset, valarray, auto_ptr, templatized string, iostream, and complex.

- 1998 The C++ Programming Language, 3rd edition
- 1999 Boost founded by the committee members to produce new high-quality candidate libraries for the standard.
- 2003 `C++03` (ISO/IEC 14882:2003)

This was a minor revision, intended to be little more than a technical corrigendum

1. New features: value initialization

Defect Reports fixed in C++03 (92 core, 125 library)
CWG#1 CWG#20 CWG#21 CWG#22 CWG#24 CWG#25 CWG#30 CWG#32 CWG#33 CWG#35 CWG#38 CWG#40 CWG#41 CWG#43 CWG#48 CWG#49 CWG#51 CWG#52 CWG#53 CWG#56 CWG#59 CWG#64 CWG#65 CWG#67 CWG#68 CWG#69 CWG#73 CWG#74 CWG#75 CWG#76 CWG#80 CWG#83 CWG#84 CWG#85 CWG#89 CWG#90 CWG#93 CWG#94 CWG#98 CWG#100 CWG#101 CWG#103 CWG#105 CWG#108 CWG#116 CWG#120 CWG#121 CWG#123 CWG#126 CWG#127 CWG#128 CWG#131 CWG#134 CWG#135 CWG#137 CWG#142 CWG#145 CWG#147 CWG#148 CWG#149 CWG#151 CWG#152 CWG#153 CWG#159 CWG#161 CWG#163 CWG#164 CWG#166 CWG#171 CWG#173 CWG#176 CWG#178 CWG#179 CWG#181 CWG#183 CWG#185 CWG#187 CWG#188 CWG#190 CWG#193 CWG#194 CWG#202 CWG#206 CWG#210 CWG#213 CWG#217 CWG#227 CWG#235 CWG#241 CWG#249 CWG#250 CWG#304 LWG#1 LWG#3 LWG#5 LWG#7 LWG#8 LWG#9 LWG#11 LWG#13 LWG#14 LWG#15 LWG#16 LWG#17 LWG#18 LWG#19 LWG#20 LWG#21 LWG#22 LWG#24 LWG#25 LWG#26 LWG#27 LWG#28 LWG#29 LWG#30 LWG#31 LWG#32 LWG#33 LWG#34 LWG#35 LWG#36 LWG#37 LWG#38 LWG#39 LWG#40 LWG#41 LWG#42 LWG#46 LWG#47 LWG#48 LWG#50 LWG#51 LWG#52 LWG#53 LWG#54 LWG#55 LWG#56 LWG#57 LWG#59 LWG#60 LWG#61 LWG#62 LWG#63 LWG#64 LWG#66 LWG#68 LWG#69 LWG#70 LWG#71 LWG#74 LWG#75 LWG#78 LWG#79 LWG#80 LWG#83 LWG#86 LWG#90 LWG#106 LWG#108 LWG#110 LWG#112 LWG#114 LWG#115 LWG#119 LWG#122 LWG#124 LWG#125 LWG#126 LWG#127 LWG#129 LWG#132 LWG#133 LWG#134 LWG#137 LWG#139 LWG#141 LWG#142 LWG#144 LWG#146 LWG#147 LWG#148 LWG#150 LWG#151 LWG#152 LWG#154 LWG#155 LWG#156 LWG#158 LWG#159 LWG#160 LWG#161 LWG#164 LWG#168 LWG#169 LWG#170 LWG#172 LWG#173 LWG#174 LWG#175 LWG#176 LWG#181 LWG#189 LWG#193 LWG#195 LWG#199 LWG#208 LWG#209 LWG#210 LWG#211 LWG#212 LWG#217 LWG#220 LWG#222 LWG#223 LWG#224 LWG#227

- 2006 Performance TR (ISO/IEC TR 18015:2006) (ISO Store) (2006 draft)

This TR discussed the costs of various C++ abstractions, provided implementation guidance, discussed use of C++ in embedded systems and introduced `<hardware>` interface to C's ISO/IEC TR 18037:2008 `<iohw.h>`.

- 2007 Library extension TR1 (ISO/IEC TR 19768:2007) (ISO store) (2005 draft).

This TR is a C++ library extension, which adds the following to the C++ standard library:

1. From Boost: Reference wrapper, Smart pointers, Member function, Result Of, Bind, Function, Type Traits, Random, Mathematical Special Functions, Tuple, Array, Unordered Containers (including Hash), and Regular Expressions.
2. From C99: mathematical functions from math.h that were new in C99, blank character class, Floating-point environment, hexfloat I/O Manipulator, fixed-size integral types, the long long type, va_copy, the snprintf() and `vfscanf()` families of functions, and the C99 conversion specifies for `printf()` and `scanf()` families of functions.

All of TR1 except for the special functions was included in C++11, with minor changes.

- 2010 Mathematical special functions (ISO/IEC 29124:2010) (ISO Store) (2010 draft)

This international standard is a C++ standard library extension, which adds the special functions that were part of TR1, but were not included in C++11: elliptic integrals, exponential integral, Laguerre polynomials, Legendre polynomials, Hermite polynomials, Bessel functions, Newmann functions, beta function, and Riemann zeta function. This standard was merged into C++17.

- 2011 `C++11` (ISO/IEC 14882:2011) (ISO Store) (ANSI Store) (Post-publication draft).

A large number of changes were introduced to both standardize existing practices and improve the abstractions available to the C++ programmers

1. New language features: auto and decltype, defaulted and deleted functions, final and override, trailing return type, rvalue references, move constructors/move assignment, scoped enums, constexpr and literal types, list initialization, delegating and inherited constructors, brace-or-equal initializers, nullptr, long long, char16_t and char32_t, type aliases, variadic templates, generalized unions, generalized PODs, Unicode string literals, user-defined literals, attributes, lambda expressions, noexcept, alignof and alignas, multithreaded memory model, thread-local storage, GC interface, range for (based on a Boost library), static assertions (based on a Boost library)
2. New library features: atomic operations library, emplace() and other use of rvalue references throughout all parts of the existing library, std::initializer_list, stateful and scoped allocators, forward_list, chrono library, ratio library, new algorithms, Unicode conversion facets
3. From TR1: all of TR1 except Special Functions.
4. From Boost: The thread library, exception_ptr, error_code and error_condition, iterator improvements (std::begin, std::end, std::next, std::prev)
5. From C: C-style Unicode conversion functions

Defect Reports fixed in C++11 (741 core, 685 library)
CWG#4 CWG#5 CWG#8 CWG#9 CWG#10 CWG#11 CWG#16 CWG#28 CWG#29 CWG#39 CWG#44 CWG#45 CWG#54 CWG#58 CWG#60 CWG#62 CWG#63 CWG#70 CWG#77 CWG#78 CWG#86 CWG#87 CWG#96 CWG#106 CWG#112 CWG#113 CWG#115 CWG#118 CWG#119 CWG#122 CWG#124 CWG#125 CWG#136 CWG#139 CWG#140 CWG#141 CWG#143 CWG#158 CWG#160 CWG#162 CWG#172 CWG#175 CWG#177 CWG#180 CWG#184 CWG#195 CWG#197 CWG#198 CWG#199 CWG#201 CWG#204 CWG#207 CWG#208 CWG#214 CWG#215 CWG#216 CWG#218 CWG#220 CWG#221 CWG#222 CWG#224 CWG#226 CWG#228 CWG#237 CWG#239 CWG#244 CWG#245 CWG#246 CWG#248 CWG#252 CWG#254 CWG#256 CWG#257 CWG#258 CWG#259 CWG#261 CWG#262 CWG#263 CWG#270 CWG#272 CWG#273 CWG#274 CWG#275 CWG#276 CWG#277 CWG#280 CWG#281 CWG#283 CWG#284 CWG#286 CWG#288 CWG#289 CWG#291 CWG#295 CWG#296 CWG#298 CWG#299 CWG#300 CWG#301 CWG#302 CWG#305 CWG#306 CWG#309 CWG#317 CWG#318 CWG#319 CWG#320 CWG#322 CWG#323 CWG#324 CWG#326 CWG#327 CWG#328 CWG#329 CWG#331 CWG#335 CWG#336 CWG#337 CWG#339 CWG#341 CWG#345 CWG#348 CWG#349 CWG#351 CWG#352 CWG#353 CWG#354 CWG#355 CWG#357 CWG#362 CWG#364 CWG#366 CWG#367 CWG#368 CWG#370 CWG#372 CWG#373 CWG#374 CWG#377 CWG#378 CWG#379 CWG#381 CWG#382 CWG#383 CWG#385 CWG#387 CWG#389 CWG#390 CWG#391 CWG#392 CWG#394 CWG#396 CWG#397 CWG#398 CWG#400 CWG#401 CWG#403 CWG#404 CWG#406 CWG#407 CWG#408 CWG#409 CWG#410 CWG#413 CWG#414 CWG#415 CWG#416 CWG#417 CWG#420 CWG#421 CWG#424 CWG#425 CWG#427 CWG#428 CWG#429 CWG#430 CWG#431 CWG#432 CWG#433 CWG#436 CWG#437 CWG#438 CWG#439 CWG#441 CWG#442 CWG#443 CWG#446 CWG#447 CWG#448 CWG#450 CWG#451 CWG#452 CWG#454 CWG#457 CWG#458 CWG#460 CWG#463 CWG#464 CWG#466 CWG#468 CWG#470 CWG#474 CWG#475 CWG#477 CWG#479 CWG#480 CWG#481 CWG#484 CWG#485 CWG#486 CWG#488 CWG#490 CWG#491 CWG#492 CWG#493 CWG#494 CWG#495 CWG#497 CWG#499 CWG#500 CWG#502 CWG#505 CWG#506 CWG#508 CWG#509 CWG#510 CWG#513 CWG#514 CWG#515 CWG#516 CWG#517 CWG#518 CWG#519 CWG#520 CWG#521 CWG#522 CWG#524 CWG#525 CWG#526 CWG#527 CWG#530 CWG#531 CWG#532 CWG#534 CWG#537 CWG#538 CWG#540 CWG#541 CWG#542 CWG#543 CWG#546 CWG#547 CWG#551 CWG#556 CWG#557 CWG#558 CWG#559 CWG#561 CWG#564 CWG#568 CWG#569 CWG#570 CWG#571 CWG#572 CWG#573 CWG#575 CWG#576 CWG#580 CWG#582 CWG#587 CWG#588 CWG#589 CWG#590 CWG#592 CWG#594 CWG#598 CWG#599 CWG#601 CWG#602 CWG#603 CWG#604 CWG#605 CWG#606 CWG#608 CWG#611 CWG#612 CWG#613 CWG#614 CWG#615 CWG#618 CWG#619 CWG#620 CWG#621 CWG#624 CWG#625 CWG#626 CWG#628 CWG#629 CWG#630 CWG#632 CWG#633 CWG#634 CWG#637 CWG#638 CWG#639 CWG#641 CWG#642 CWG#644 CWG#645 CWG#647 CWG#648 CWG#649 CWG#650 CWG#651 CWG#652 CWG#653 CWG#654 CWG#655 CWG#656 CWG#657 CWG#658 CWG#659 CWG#660 CWG#661 CWG#663 CWG#664 CWG#665 CWG#666 CWG#667 CWG#668 CWG#671 CWG#672 CWG#674 CWG#676 CWG#677 CWG#678 CWG#679 CWG#680 CWG#681 CWG#683 CWG#684 CWG#685 CWG#686 CWG#688 CWG#690 CWG#691 CWG#692 CWG#693 CWG#694 CWG#695 CWG#696 CWG#699 CWG#700 CWG#701 CWG#702 CWG#703 CWG#704 CWG#705 CWG#707 CWG#709 CWG#710 CWG#711 CWG#713 CWG#714 CWG#715 CWG#716 CWG#717 CWG#719 CWG#720 CWG#721 CWG#722 CWG#726 CWG#730 CWG#731 CWG#732 CWG#734 CWG#735 CWG#737 CWG#738 CWG#740 CWG#741 CWG#743 CWG#744 CWG#746 CWG#749 CWG#750 CWG#751 CWG#752 CWG#753 CWG#754 CWG#756 CWG#757 CWG#758 CWG#759 CWG#760 CWG#761 CWG#762 CWG#763 CWG#764 CWG#765 CWG#766 CWG#767 CWG#768 CWG#769 CWG#770 CWG#771 CWG#772 CWG#773 CWG#774 CWG#775 CWG#776 CWG#777 CWG#778 CWG#779 CWG#782 CWG#784 CWG#785 CWG#786 CWG#787 CWG#788 CWG#789 CWG#790 CWG#792 CWG#793 CWG#796 CWG#797 CWG#798 CWG#799 CWG#801 CWG#803 CWG#804 CWG#805 CWG#806 CWG#808 CWG#809 CWG#810 CWG#811 CWG#812 CWG#814 CWG#815 CWG#816 CWG#817 CWG#818 CWG#820 CWG#823 CWG#828 CWG#830 CWG#831 CWG#832 CWG#833 CWG#834 CWG#835 CWG#837 CWG#838 CWG#840 CWG#842 CWG#845 CWG#846 CWG#847 CWG#850 CWG#853 CWG#854 CWG#855 CWG#858 CWG#860 CWG#861 CWG#862 CWG#863 CWG#864 CWG#865 CWG#869 CWG#872 CWG#873 CWG#874 CWG#876 CWG#877 CWG#879 CWG#880 CWG#882 CWG#883 CWG#884 CWG#886 CWG#887 CWG#888 CWG#891 CWG#892 CWG#896 CWG#898 CWG#899 CWG#904 CWG#905 CWG#906 CWG#908 CWG#910 CWG#913 CWG#915 CWG#919 CWG#920 CWG#921 CWG#922 CWG#923 CWG#924 CWG#926 CWG#927 CWG#928 CWG#929 CWG#930 CWG#931 CWG#932 CWG#933 CWG#934 CWG#935 CWG#936 CWG#938 CWG#939 CWG#940 CWG#941 CWG#942 CWG#945 CWG#946 CWG#948 CWG#950 CWG#951 CWG#953 CWG#955 CWG#956 CWG#957 CWG#959 CWG#960 CWG#961 CWG#962 CWG#963 CWG#964 CWG#965 CWG#966 CWG#968 CWG#969 CWG#970 CWG#971 CWG#972 CWG#973 CWG#976 CWG#978 CWG#979 CWG#980 CWG#981 CWG#983 CWG#984 CWG#985 CWG#986 CWG#988 CWG#989 CWG#990 CWG#991 CWG#993 CWG#994 CWG#995 CWG#996 CWG#997 CWG#999 CWG#1000 CWG#1004 CWG#1006 CWG#1009 CWG#1010 CWG#1011 CWG#1012 CWG#1015 CWG#1016 CWG#1017 CWG#1018 CWG#1020 CWG#1022 CWG#1025 CWG#1029 CWG#1030 CWG#1031 CWG#1032 CWG#1033 CWG#1034 CWG#1035 CWG#1036 CWG#1037 CWG#1042 CWG#1043 CWG#1044 CWG#1047 CWG#1051 CWG#1054 CWG#1055 CWG#1056 CWG#1057 CWG#1060 CWG#1061 CWG#1062 CWG#1063 CWG#1064 CWG#1065 CWG#1066 CWG#1068 CWG#1069 CWG#1070 CWG#1071 CWG#1072 CWG#1073 CWG#1074 CWG#1075 CWG#1079 CWG#1080 CWG#1081 CWG#1082 CWG#1083 CWG#1086 CWG#1087 CWG#1088 CWG#1090 CWG#1091 CWG#1094 CWG#1095 CWG#1096 CWG#1098 CWG#1099 CWG#1100 CWG#1101 CWG#1102 CWG#1103 CWG#1104 CWG#1105 CWG#1106 CWG#1107 CWG#1109 CWG#1111 CWG#1112 CWG#1113 CWG#1114 CWG#1115 CWG#1117 CWG#1119 CWG#1120 CWG#1121 CWG#1122 CWG#1123 CWG#1125 CWG#1126 CWG#1127 CWG#1128 CWG#1129 CWG#1130 CWG#1131 CWG#1133 CWG#1134 CWG#1135 CWG#1136 CWG#1137 CWG#1138 CWG#1139 CWG#1140 CWG#1142 CWG#1144 CWG#1145 CWG#1146 CWG#1147 CWG#1148 CWG#1149 CWG#1151 CWG#1152 CWG#1153 CWG#1154 CWG#1155 CWG#1156 CWG#1158 CWG#1159 CWG#1160 CWG#1161 CWG#1164 CWG#1165 CWG#1166 CWG#1167 CWG#1168 CWG#1169 CWG#1170 CWG#1171 CWG#1173 CWG#1174 CWG#1175 CWG#1176 CWG#1177 CWG#1178 CWG#1180 CWG#1181 CWG#1182 CWG#1183 CWG#1184 CWG#1185 CWG#1186 CWG#1187 CWG#1188 CWG#1189 CWG#1190 CWG#1191 CWG#1192 CWG#1193 CWG#1194 CWG#1195 CWG#1196 CWG#1197 CWG#1198 CWG#1199 CWG#1201 CWG#1202 CWG#1204 CWG#1206 CWG#1207 CWG#1208 CWG#1210 CWG#1212 CWG#1214 CWG#1215 CWG#1216 CWG#1218 CWG#1219 CWG#1220 CWG#1224 CWG#1225 CWG#1229 CWG#1231 CWG#1232 CWG#1233 CWG#1234 CWG#1235 CWG#1236 CWG#1237 CWG#1238 CWG#1239 CWG#1240 CWG#1241 CWG#1242 CWG#1243 CWG#1244 CWG#1245 CWG#1246 LWG#23 LWG#44 LWG#49 LWG#76 LWG#91 LWG#92 LWG#98 LWG#103 LWG#109 LWG#117 LWG#118 LWG#120 LWG#123 LWG#130 LWG#136 LWG#149 LWG#153 LWG#165 LWG#167 LWG#171 LWG#179 LWG#180 LWG#182 LWG#183 LWG#184 LWG#185 LWG#186 LWG#187 LWG#198 LWG#200 LWG#201 LWG#202 LWG#206 LWG#214 LWG#221 LWG#225 LWG#226 LWG#228 LWG#229 LWG#230 LWG#231 LWG#232 LWG#233 LWG#234 LWG#235 LWG#237 LWG#238 LWG#239 LWG#240 LWG#241 LWG#242 LWG#243 LWG#247 LWG#248 LWG#250 LWG#251 LWG#252 LWG#253 LWG#254 LWG#256 LWG#258 LWG#259 LWG#260 LWG#261 LWG#262 LWG#263 LWG#264 LWG#265 LWG#266 LWG#268 LWG#270 LWG#271 LWG#272 LWG#273 LWG#274 LWG#275 LWG#276 LWG#278 LWG#280 LWG#281 LWG#282 LWG#283 LWG#284 LWG#285 LWG#286 LWG#288 LWG#291 LWG#292 LWG#294 LWG#295 LWG#296 LWG#297 LWG#298 LWG#300 LWG#301 LWG#303 LWG#305 LWG#306 LWG#307 LWG#308 LWG#310 LWG#311 LWG#312 LWG#315 LWG#316 LWG#317 LWG#318 LWG#319 LWG#320 LWG#321 LWG#322 LWG#324 LWG#325 LWG#327 LWG#328 LWG#329 LWG#331 LWG#333 LWG#334 LWG#335 LWG#336 LWG#337 LWG#338 LWG#339 LWG#340 LWG#341 LWG#345 LWG#346 LWG#347 LWG#349 LWG#352 LWG#354 LWG#355 LWG#358 LWG#359 LWG#360 LWG#362 LWG#363 LWG#364 LWG#365 LWG#369 LWG#370 LWG#371 LWG#373 LWG#375 LWG#376 LWG#379 LWG#380 LWG#381 LWG#383 LWG#384 LWG#386 LWG#387 LWG#389 LWG#391 LWG#395 LWG#396 LWG#400 LWG#401 LWG#402 LWG#403 LWG#404 LWG#405 LWG#406 LWG#407 LWG#409 LWG#410 LWG#411 LWG#412 LWG#413 LWG#414 LWG#415 LWG#416 LWG#419 LWG#420 LWG#422 LWG#425 LWG#426 LWG#427 LWG#428 LWG#430 LWG#432 LWG#434 LWG#435 LWG#436 LWG#438 LWG#441 LWG#442 LWG#443 LWG#444 LWG#445 LWG#448 LWG#449 LWG#453 LWG#455 LWG#456 LWG#457 LWG#460 LWG#461 LWG#464 LWG#465 LWG#467 LWG#468 LWG#469 LWG#471 LWG#473 LWG#474 LWG#475 LWG#478 LWG#488 LWG#495 LWG#496 LWG#497 LWG#498 LWG#505 LWG#507 LWG#508 LWG#518 LWG#519 LWG#520 LWG#521 LWG#522 LWG#524 LWG#527 LWG#530 LWG#531 LWG#533 LWG#534 LWG#535 LWG#537 LWG#538 LWG#539 LWG#540 LWG#541 LWG#542 LWG#543 LWG#545 LWG#550 LWG#551 LWG#552 LWG#556 LWG#559 LWG#561 LWG#562 LWG#563 LWG#564 LWG#565 LWG#566 LWG#567 LWG#574 LWG#575 LWG#576 LWG#577 LWG#578 LWG#581 LWG#586 LWG#589 LWG#593 LWG#595 LWG#596 LWG#607 LWG#608 LWG#609 LWG#610 LWG#611 LWG#612 LWG#613 LWG#616 LWG#618 LWG#619 LWG#620 LWG#621 LWG#622 LWG#623 LWG#624 LWG#628 LWG#629 LWG#630 LWG#634 LWG#638 LWG#640 LWG#643 LWG#646 LWG#650 LWG#651 LWG#652 LWG#654 LWG#655 LWG#659 LWG#660 LWG#661 LWG#664 LWG#665 LWG#666 LWG#671 LWG#672 LWG#673 LWG#674 LWG#675 LWG#676 LWG#677 LWG#678 LWG#679 LWG#680 LWG#681 LWG#682 LWG#685 LWG#687 LWG#688 LWG#689 LWG#691 LWG#692 LWG#693 LWG#694 LWG#695 LWG#696 LWG#698 LWG#699 LWG#700 LWG#703 LWG#704 LWG#705 LWG#706 LWG#709 LWG#710 LWG#711 LWG#712 LWG#713 LWG#714 LWG#715 LWG#716 LWG#720 LWG#722 LWG#723 LWG#724 LWG#727 LWG#728 LWG#734 LWG#740 LWG#743 LWG#744 LWG#746 LWG#749 LWG#752 LWG#753 LWG#755 LWG#758 LWG#759 LWG#761 LWG#762 LWG#765 LWG#766 LWG#768 LWG#769 LWG#770 LWG#771 LWG#772 LWG#774 LWG#775 LWG#776 LWG#777 LWG#778 LWG#779 LWG#780 LWG#781 LWG#782 LWG#783 LWG#787 LWG#788 LWG#789 LWG#792 LWG#798 LWG#804 LWG#805 LWG#806 LWG#807 LWG#808 LWG#809 LWG#810 LWG#811 LWG#813 LWG#814 LWG#817 LWG#818 LWG#819 LWG#820 LWG#821 LWG#824 LWG#829 LWG#835 LWG#836 LWG#838 LWG#842 LWG#843 LWG#844 LWG#845 LWG#846 LWG#847 LWG#848 LWG#850 LWG#852 LWG#853 LWG#854 LWG#856 LWG#857 LWG#858 LWG#859 LWG#860 LWG#861 LWG#865 LWG#866 LWG#868 LWG#869 LWG#870 LWG#871 LWG#872 LWG#876 LWG#878 LWG#881 LWG#882 LWG#883 LWG#885 LWG#886 LWG#888 LWG#890 LWG#891 LWG#893 LWG#894 LWG#896 LWG#898 LWG#899 LWG#900 LWG#904 LWG#907 LWG#909 LWG#911 LWG#920 LWG#921 LWG#922 LWG#925 LWG#929 LWG#931 LWG#934 LWG#938 LWG#939 LWG#943 LWG#948 LWG#949 LWG#951 LWG#954 LWG#956 LWG#957 LWG#960 LWG#962 LWG#963 LWG#965 LWG#967 LWG#968 LWG#970 LWG#974 LWG#975 LWG#978 LWG#981 LWG#982 LWG#984 LWG#986 LWG#987 LWG#990 LWG#991 LWG#993 LWG#994 LWG#997 LWG#998 LWG#999 LWG#1004 LWG#1006 LWG#1011 LWG#1012 LWG#1014 LWG#1019 LWG#1021 LWG#1030 LWG#1033 LWG#1034 LWG#1037 LWG#1038 LWG#1039 LWG#1040 LWG#1044 LWG#1045 LWG#1065 LWG#1066 LWG#1070 LWG#1071 LWG#1073 LWG#1079 LWG#1089 LWG#1094 LWG#1095 LWG#1097 LWG#1098 LWG#1103 LWG#1104 LWG#1108 LWG#1110 LWG#1113 LWG#1114 LWG#1118 LWG#1123 LWG#1126 LWG#1130 LWG#1131 LWG#1133 LWG#1134 LWG#1136 LWG#1137 LWG#1138 LWG#1144 LWG#1152 LWG#1157 LWG#1158 LWG#1159 LWG#1170 LWG#1171 LWG#1177 LWG#1178 LWG#1180 LWG#1181 LWG#1182 LWG#1183 LWG#1187 LWG#1189 LWG#1191 LWG#1192 LWG#1193 LWG#1194 LWG#1195 LWG#1197 LWG#1198 LWG#1199 LWG#1204 LWG#1205 LWG#1206 LWG#1207 LWG#1208 LWG#1209 LWG#1215 LWG#1216 LWG#1218 LWG#1220 LWG#1221 LWG#1222 LWG#1227 LWG#1231 LWG#1234 LWG#1237 LWG#1240 LWG#1241 LWG#1245 LWG#1247 LWG#1249 LWG#1250 LWG#1252 LWG#1253 LWG#1254 LWG#1255 LWG#1256 LWG#1257 LWG#1261 LWG#1262 LWG#1264 LWG#1267 LWG#1270 LWG#1271 LWG#1276 LWG#1277 LWG#1278 LWG#1279 LWG#1280 LWG#1284 LWG#1285 LWG#1286 LWG#1287 LWG#1288 LWG#1292 LWG#1294 LWG#1295 LWG#1298 LWG#1299 LWG#1303 LWG#1306 LWG#1309 LWG#1310 LWG#1312 LWG#1316 LWG#1319 LWG#1323 LWG#1325 LWG#1332 LWG#1333 LWG#1334 LWG#1335 LWG#1337 LWG#1338 LWG#1339 LWG#1340 LWG#1349 LWG#1354 LWG#1360 LWG#1362 LWG#1363 LWG#1367 LWG#1368 LWG#1370 LWG#1372 LWG#1381 LWG#1384 LWG#1385 LWG#1386 LWG#1387 LWG#1388 LWG#1399 LWG#1400 LWG#1401 LWG#1402 LWG#1403 LWG#1404 LWG#1408 LWG#1414 LWG#1416 LWG#1417 LWG#1418 LWG#1420 LWG#1423 LWG#1424 LWG#1425 LWG#1426 LWG#1427 LWG#1428 LWG#1429 LWG#1430 LWG#1431 LWG#1432 LWG#1435 LWG#1436 LWG#1437 LWG#1438 LWG#1439 LWG#1440 LWG#1441 LWG#1448 LWG#1449 LWG#1474 LWG#1478 LWG#1479 LWG#1480 LWG#1487 LWG#1494 LWG#1497 LWG#1514 LWG#1516 LWG#1517 LWG#1518 LWG#1519 LWG#1520 LWG#1522 LWG#1524 LWG#1525 LWG#2000 LWG#2001 LWG#2004 LWG#2007 LWG#2008 LWG#2014 LWG#2017 LWG#2019 LWG#2020 LWG#2022 LWG#2027 LWG#2029 LWG#2030 LWG#2031 LWG#2032 LWG#2041 LWG#2042

- 2011 Decimal floating-point TR (ISO/IEC TR 24733:2011) (ISO Store) (2009 draft)

This TR implements the decimal floating-point types from IEEE 754-2008 Standard for Floating-Point Arithmetic: std::decimal::decimal32, std::decimal::decimal64, and std::decimal::decimal128.

- 2012 The Standard C++ Foundation founded
- 2013 The C++ Programming Language, 4th edition
- 2014 `C++14` (ISO Store) (2014 final draft)

Minor revision of the C++ standard

1. New language features: variable templates, polymorphic lambdas, lambda captures expressions, new/delete elision, relaxed restrictions on constexpr functions, binary literals, digit separators, return type deduction for functions, aggregate initialization for classes with brace-or-equal initializers.
2. New library features: std::make_unique, std::shared_timed_mutex and std::shared_lock, std::integer_sequence, std::exchange, std::quoted, and many small improvements to existing library facilities, such as two-range overloads for some algorithms, type alias versions of type traits, user-defined string, duration, and complex number literals, etc.

Defect Reports fixed in C++14 (276 core, 149 library)
CWG#129 CWG#223 CWG#240 CWG#292 CWG#312 CWG#332 CWG#342 CWG#344 CWG#388 CWG#462 CWG#482 CWG#483 CWG#496 CWG#535 CWG#539 CWG#565 CWG#577 CWG#583 CWG#597 CWG#616 CWG#623 CWG#631 CWG#675 CWG#712 CWG#729 CWG#739 CWG#755 CWG#903 CWG#912 CWG#974 CWG#975 CWG#977 CWG#1003 CWG#1013 CWG#1024 CWG#1048 CWG#1059 CWG#1093 CWG#1213 CWG#1226 CWG#1227 CWG#1250 CWG#1251 CWG#1260 CWG#1261 CWG#1262 CWG#1264 CWG#1265 CWG#1267 CWG#1268 CWG#1269 CWG#1270 CWG#1275 CWG#1282 CWG#1287 CWG#1288 CWG#1290 CWG#1293 CWG#1295 CWG#1296 CWG#1297 CWG#1298 CWG#1301 CWG#1302 CWG#1305 CWG#1306 CWG#1307 CWG#1308 CWG#1310 CWG#1311 CWG#1312 CWG#1313 CWG#1318 CWG#1320 CWG#1321 CWG#1324 CWG#1327 CWG#1328 CWG#1329 CWG#1330 CWG#1333 CWG#1336 CWG#1340 CWG#1344 CWG#1345 CWG#1346 CWG#1347 CWG#1350 CWG#1352 CWG#1354 CWG#1355 CWG#1357 CWG#1358 CWG#1359 CWG#1361 CWG#1362 CWG#1363 CWG#1364 CWG#1365 CWG#1366 CWG#1367 CWG#1368 CWG#1369 CWG#1370 CWG#1372 CWG#1374 CWG#1375 CWG#1376 CWG#1380 CWG#1381 CWG#1382 CWG#1383 CWG#1385 CWG#1387 CWG#1388 CWG#1392 CWG#1394 CWG#1398 CWG#1399 CWG#1401 CWG#1402 CWG#1405 CWG#1406 CWG#1408 CWG#1409 CWG#1410 CWG#1411 CWG#1412 CWG#1413 CWG#1415 CWG#1416 CWG#1417 CWG#1418 CWG#1423 CWG#1424 CWG#1425 CWG#1428 CWG#1431 CWG#1435 CWG#1437 CWG#1438 CWG#1439 CWG#1440 CWG#1441 CWG#1442 CWG#1447 CWG#1449 CWG#1450 CWG#1453 CWG#1454 CWG#1455 CWG#1456 CWG#1457 CWG#1458 CWG#1460 CWG#1462 CWG#1464 CWG#1466 CWG#1471 CWG#1472 CWG#1473 CWG#1475 CWG#1476 CWG#1477 CWG#1479 CWG#1480 CWG#1481 CWG#1482 CWG#1487 CWG#1489 CWG#1491 CWG#1493 CWG#1494 CWG#1495 CWG#1502 CWG#1503 CWG#1504 CWG#1506 CWG#1507 CWG#1508 CWG#1509 CWG#1510 CWG#1511 CWG#1512 CWG#1514 CWG#1515 CWG#1516 CWG#1522 CWG#1527 CWG#1528 CWG#1531 CWG#1532 CWG#1533 CWG#1535 CWG#1537 CWG#1538 CWG#1539 CWG#1541 CWG#1543 CWG#1544 CWG#1550 CWG#1551 CWG#1553 CWG#1556 CWG#1557 CWG#1559 CWG#1560 CWG#1562 CWG#1563 CWG#1567 CWG#1569 CWG#1570 CWG#1575 CWG#1576 CWG#1579 CWG#1583 CWG#1587 CWG#1588 CWG#1592 CWG#1593 CWG#1595 CWG#1597 CWG#1598 CWG#1601 CWG#1604 CWG#1605 CWG#1607 CWG#1608 CWG#1611 CWG#1612 CWG#1613 CWG#1618 CWG#1629 CWG#1648 CWG#1649 CWG#1658 CWG#1660 CWG#1662 CWG#1664 CWG#1666 CWG#1669 CWG#1673 CWG#1674 CWG#1681 CWG#1684 CWG#1687 CWG#1689 CWG#1690 CWG#1691 CWG#1692 CWG#1693 CWG#1707 CWG#1716 CWG#1717 CWG#1732 CWG#1737 CWG#1738 CWG#1739 CWG#1740 CWG#1741 CWG#1746 CWG#1747 CWG#1759 CWG#1760 CWG#1762 CWG#1764 CWG#1765 CWG#1767 CWG#1769 CWG#1770 CWG#1772 CWG#1773 CWG#1775 CWG#1778 CWG#1786 CWG#1787 LWG#1214 LWG#1450 LWG#2003 LWG#2005 LWG#2009 LWG#2010 LWG#2011 LWG#2013 LWG#2015 LWG#2018 LWG#2021 LWG#2028 LWG#2033 LWG#2039 LWG#2044 LWG#2045 LWG#2047 LWG#2048 LWG#2049 LWG#2050 LWG#2053 LWG#2056 LWG#2058 LWG#2061 LWG#2064 LWG#2065 LWG#2067 LWG#2069 LWG#2071 LWG#2074 LWG#2078 LWG#2080 LWG#2081 LWG#2083 LWG#2085 LWG#2086 LWG#2087 LWG#2091 LWG#2092 LWG#2093 LWG#2094 LWG#2096 LWG#2097 LWG#2098 LWG#2099 LWG#2100 LWG#2102 LWG#2103 LWG#2104 LWG#2105 LWG#2109 LWG#2110 LWG#2112 LWG#2120 LWG#2122 LWG#2123 LWG#2128 LWG#2130 LWG#2132 LWG#2135 LWG#2138 LWG#2140 LWG#2141 LWG#2142 LWG#2143 LWG#2144 LWG#2145 LWG#2147 LWG#2148 LWG#2149 LWG#2150 LWG#2159 LWG#2162 LWG#2163 LWG#2169 LWG#2172 LWG#2174 LWG#2175 LWG#2176 LWG#2177 LWG#2180 LWG#2182 LWG#2185 LWG#2186 LWG#2187 LWG#2188 LWG#2190 LWG#2193 LWG#2194 LWG#2196 LWG#2197 LWG#2200 LWG#2203 LWG#2205 LWG#2207 LWG#2209 LWG#2210 LWG#2211 LWG#2213 LWG#2222 LWG#2225 LWG#2229 LWG#2231 LWG#2235 LWG#2246 LWG#2247 LWG#2252 LWG#2257 LWG#2258 LWG#2263 LWG#2268 LWG#2271 LWG#2272 LWG#2275 LWG#2278 LWG#2280 LWG#2284 LWG#2285 LWG#2288 LWG#2291 LWG#2293 LWG#2298 LWG#2299 LWG#2300 LWG#2301 LWG#2304 LWG#2306 LWG#2308 LWG#2313 LWG#2314 LWG#2315 LWG#2316 LWG#2317 LWG#2320 LWG#2322 LWG#2323 LWG#2324 LWG#2329 LWG#2330 LWG#2332 LWG#2339 LWG#2341 LWG#2344 LWG#2346 LWG#2350 LWG#2356 LWG#2357 LWG#2359 LWG#2360

- 2015 Filesystem library TS (ISO/IEC TS 18822:2015) (ISO Store) (2014 draft)

This TS is an experimental C++ library extension that specifies a filesystem library based on boost.filesystem V3 (with some modifications and extensions). This TS was merged into C++17.

- 2015 Extensions for Parallelism TS (ISO/IEC TS 19570:2015) (ISO Store) (2015 draft)

This TS standardizes parallel and vector-parallel API for all standard library algorithms, as well as adds new algorithms such as `reduce`, `transform_reduce`, or `exclusive_scan`. This TS was merged into C++17.

- 2015 Extensions for Transactional Memory TS (ISO/IEC TS 19841:2015) (ISO Store) (2015 draft)

This TS extends the C++ core language with synchronized and atomic blocks, as well as transaction-safe functions, which implement transactional memory semantics.

- 2015 Extensions for Library Fundamentals TS (ISO/IEC TS 19568:2015) (ISO Store) (2015 draft)

This TS adds several new components to the C++ standard library: `optional`, `any`, `string_view`, `sample`, `search`, `apply`, polymorphic allocators, and variable templates for type traits. This TS was merged into C++17.

- 2015 Extensions for Concepts TS (ISO/IEC TS 19217:2015) (ISO Store) (2015 draft)

This TS extends the C++ core language with concepts (named type requirements) and constraints (limits on the types allowed in template, function, and variable declarations), which aids metaprogramming and simplifies template instantiation diagnostics, see concepts

- 2016 Extensions for Concurrency TS (ISO/IEC TS 19571:2016) (ISO Store) (2015 draft)

This TS extends the C++ library to include several extensions to std::future, latches and barriers, and atomic smart pointers.

### [edit] Future development

- Experimental technical specifications (Networking, Ranges, Modules, Numerics, versions 2 of Library Extensions, Parallelism, Concurrency)
- 2017 C++17 (n4659 (2017-03-21 final draft))

The next major revision of the C++ standard

1. Language changes: fold-expressions, class template deduction (std::vector v = {1,2,3};), auto non-type template parameters (template <auto v> struct B), compile-time if constexpr, inline variables, structured bindings (auto [a,b] = f();), initializers for if and switch if(init;condition) and switch(init;condition), u8-char, simplified nested namespaces, using-declaration can declare multiple names, made noexcept part of type system, allocation functions with explicit alignment, guaranteed copy elision, __has_include, lambda capture of *this, constexpr lambda, attribute namespaces don't have to repeat, new attributes [[fallthrough]], [[nodiscard]], and [[maybe_unused]]. Removed trigraphs, the `register` keyword, bool increment
2. Library changes:
3. `std::variant`, `std::launder`, uninitialized memory tools (`std::destroy_at`/`std::destroy`/`std::destroy_n`, `std::uninitialized_move`, `std::uninitialized_value_construct`, etc), map/set `extract` and map/set `merge`, `byte`, `std::make_from_tuple`, `std::to_chars`/`from_chars`, relative path support in Filesystem (`proximate`, `relative`, `weakly_canonical`), directory entry caching in Filesystem, contiguous iterators, non-member `size`/`empty`/`data`, map/unordered_map `try_emplace` and `insert_or_assign`, `uncaught_exceptions`, variadic `lock_guard`, `as_const`, `conjunction`/`disjunction`/`negation`, type trait variables xxx_v, transparent `owner_less`, rounding functions for `duration` and `time_point`, array support for std::shared_ptr, `not_fn`, `weak_from_this`, `is_always_lock_free`, `is_swappable`, `clamp`, `3D hypot`, `cache line interface`, `is_invocable`, `is_aggregate`, `has_unique_object_representations`. Deprecated `std::iterator`, `std::raw_storage_iterator`, `std::get_temporary_buffer`, `std::is_literal_type`, `std::result_of`, all of `<codecvt>` Removed `auto_ptr`, the deprecated function objects, std::random_shuffle, std::unexpected, the obsolete iostreams aliases.
4. From TS's: the filesystem library, the library fundamentals v1 (including `optional`, `any`, `string_view`, polymorphic allocators, searchers, `apply`), parallelism v1 (including execution policies, `reduce`, `inclusive_scan`, `exclusive_scan`), but removing `exception_list`. From special math IS: special mathematical functions, from library fundamentals v2: `std::gcd`, `std::lcm`
5. From C11: `std::aligned_alloc`, `std::timespec_get`

### [edit] See also

C documentation for History of C

### [edit] External links

- A History of C++: 1979-1991
- Evolving a language in and for the real world: C++ 1991-2006
- Standard C++ foundation
- C++ on Wikipedia
- C++ Standards Committee

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/language/history&oldid=91257"