Overview
List of new/changed features in C++11, general links and feature-specific internal pages.
Links to relevant external pages
-
- Bjarne's C++11 FAQ (obsoleted by ISO C++ Super-FAQ above)
C++11 features
Ongoing hierarchical list of new C++11 features
Constantly being shuffled around; this list will be used as the basis for the more specific pages listed above.
Misc fixes
- right angle brackets
Data types and literals
alignas/alignofdecltypechar16_t,char32_tnullptr- New string literals (Unicode, raw)
- User-defined literals
autotype deductionconstexpr(here?)- type traits
Any other new character types?
General language features
- Initializer lists
- Overloading and “= delete” for non-member functions
- Trailing return types (mostly for templates)
Looping
- Range for loops
- for_each, non-member begin() and end()
Namespaces
- Inline namespaces
Enumeration types
- scoped enums
- forward enum declarations
- strongly-typed enums (n2347.pdf)
Class "life cycle" methods
- Delegating constructors
- Inheriting constructors
- Move semantics (tied to rvalues)
- “
= default” - “
= delete”
Rvalue references
- Basic rvalue references
- Rvalue references for
*this
Class features
- Non-static data member initializers
- Explicit conversion operators
- Extended friend declarations
Inheritance issues
overridefinal
Smart pointers
auto_ptr(deprecated)unique_ptrshared_ptrweak_ptr
Templates
- Template aliases
- variadic templates (parameter pack, sizeof…)
- extern template (explicit instantiation declaration)
- Extended friend declaration
- Local and unnamed types as template parameters(?)
Lambda expressions
Exceptions
noexcept
Debugging
- static_assert()
Standard Library
- With the approval of C++11, TR1 is officially incorporated into standard C++ standard, along with new libraries that have been added since TR1.
- threading library
- relies heavily on move semantics
- New algorithms here
- tuple
Concurrency
- Atomic operations
- Threads and thread-local storage
- async()
Others
- extern template
- Regular expressions
- C99 preprocessor (
__cplusplus??) - Unrestricted unions
- Attributes
- ref-qualifiers (move semantics?)
- Dynamic pointer safty (garbage collection)
- I/O manipulators