![Page 1: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/1.jpg)
![Page 2: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/2.jpg)
![Page 3: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/3.jpg)
Work under auspices of ISO SC22 WG21 Typically 5-10 national bodies present at any
meeting More participants online
Meet 2-3 times a year for week-long meetings Typical attendance in 50-100 range 4 active working groups
Core Library Evolution Concurrency
Work continues online at a slower pace
![Page 4: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/4.jpg)
![Page 5: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/5.jpg)
Concepts Modules Reflection Full-featured Garbage Collection “No New libraries (beyond TR1)” TR1 math libraries
Becomes its own standard instead
![Page 6: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/6.jpg)
export auto to declare local variables access declarations Conversion from string literal to ‘char *’
Converts only to ‘char const *’ now Reference counted strings
![Page 7: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/7.jpg)
C99 + TC1 + TC2 + Unicode TR Unicode ECMAscript regular expressions Posix
error handling threads
![Page 8: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/8.jpg)
![Page 9: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/9.jpg)
![Page 10: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/10.jpg)
![Page 11: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/11.jpg)
![Page 12: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/12.jpg)
explicit override ‘keyword’ nullptr strong enum forwarding constructors ('strong' typedef) static_assert explicit conversion functions conditionally supported behavior -> more
diagnosable errors deleted functions detect array-new overflow detect narrowing conversions (with new
syntax) noexcept destructors
![Page 13: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/13.jpg)
New data types long long char16_t char32_t extended integral
types decltype auto function
declarations extended friends extern template variadic templates variadic macros
_Pragma move semantics perfect forwarding defaulted functions user defined literals initializer lists attributes trivial types fixed-base for enums forward declare
enums enum class
![Page 14: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/14.jpg)
![Page 15: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/15.jpg)
![Page 16: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/16.jpg)
inline namespaces exception cloning native support for type traits __func__ and updated assert macro implicit move constructor implicit move-assignment operator reference qualifiers anonymous namespace has internal
linkage concatenate string literals of different type
![Page 17: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/17.jpg)
Almost doubled in size (by page count) Huge effort to clean up specification
Simplify through use of common definitions More precise contracts, using those terms Learned a lot from the ‘concept’ experiments Resolved roughly 6x as many issues as TC1 (although many came from new features as
library evolved!)
![Page 18: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/18.jpg)
![Page 19: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/19.jpg)
rvalue references variadic templates sequence constructors constexpr long long and extended integral types Unicode character types explicit bool conversion operators deleted copy semantics noexcept nullptr
![Page 20: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/20.jpg)
exception cloning initializer lists range-based for loop garbage collection
![Page 21: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/21.jpg)
shared_ptr binders function array unordered (hashing) containers tuple random numbers regular expressions type traits Adopt C99 library
![Page 22: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/22.jpg)
unique_ptr and move_iterator forward_list atomic primitives thread launching thread synchronization futures and asynch time interval support compile-time ratio arithmetic clocks portable handling of system errors nested_exception type_index
![Page 23: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/23.jpg)
all_of/any_of/none_of find_if_not copy_n/copy_if move / move_backward partition_copy is_partitioned/partition_point is_sorted/is_sorted_until is_heap/is_heap_until next/prev iota minmax / minmax_element variadic min/max/minmax uninitialized_copy_n
![Page 24: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/24.jpg)
emplace cbegin/cend consistent const_iterator to locate elements consistent overload on std::string as well as
const char * thread-safe strings (no reference counting) simple numeric string / std::string conversions code conversion for wide/narrow strings new facets : time and money better floating point support (iostream flags /
num limits) allocator upgrade
![Page 25: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/25.jpg)
move semantics random numbers allocator for shared_ptr/function shared_ptr aliasing shared_ptr factories atomic shared_ptr interface more type traits :
decay/conditional/enable_if alignment calculators (type traits) tuple concatenation equality comparison of hashing containers
![Page 26: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/26.jpg)
basic thread-safe guarantee through library Can safely use any library object from a single thread
without locking Sharing an object between threads requires user to
synchronize access Read-only access generally safe without locking, but
a single write means reads must synchronize too! basic_string cannot be copy-on-write shared_ptr must have thread-safe reference
counting thread-safe access to handler functions, e.g.
at_exit
![Page 27: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/27.jpg)
hidden header dependencies swap now in <utility> rather than
<algorithm> C/C++ std header implementations allocators vector< bool > bitset constructors ios_base::failure derives from
system_error
![Page 28: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/28.jpg)
auto_ptr old function binders unary/binary_function
![Page 29: C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features](https://reader036.vdocuments.pub/reader036/viewer/2022062518/5697bf901a28abf838c8da97/html5/thumbnails/29.jpg)
Most modern compilers implement a subset static_assert auto decltype rvalue references lambda
gcc 4.6 has widest support Clang getting good coverage if you want
to build your own