C++ language revisions



C++11 / C++0x

Core language runtime performance enhancements

  • Rvalue references and move constructors
  • constexpr – Generalized constant expressions
  • Modification to the definition of plain old data

Core language build-time performance enhancements

  • Extern template

Core language usability enhancements

  • Initializer lists
  • Uniform initialization
  • Type inference
  • Range-based for loop
  • Lambda functions and expressions
  • Alternative function syntax
  • Object construction improvement
  • Explicit overrides and final
  • Null pointer constant
  • Strongly typed enumerations
  • Right angle bracket
  • Explicit conversion operators
  • Template aliases
  • Unrestricted unions

Core language functionality improvements

  • Variadic templates
  • New string literals
  • User-defined literals
  • Multithreading memory model
  • Thread-local storage
  • Explicitly defaulted special member functions
  • Explicitly deleted functions
  • Type long long int
  • Static assertions
  • Allow sizeof to work on members of classes without an explicit object
  • Control and query object alignment
  • Allow garbage collected implementations
  • Attributes

C++ standard library changes

Upgrades to standard library components

  • Rvalue references and the associated move support
  • Support for the UTF-16 encoding unit, and UTF-32 encoding unit Unicode character types
  • Variadic templates (coupled with Rvalue references to allow for perfect forwarding)
  • Compile-time constant expressions
  • decltype
  • explicit conversion operators
  • Functions declared defaulted or deleted

Threading facilities

  • std::thread
  • std::mutex
  • std::condition_variable
  • std::async
  • std::future

Tuple types

Hash tables

Regular expressions

General-purpose smart pointers

Extensible random number facility

Wrapper reference

Polymorphic wrappers for function objects

Type traits for metaprogramming

Uniform method for computing the return type of function objects

C++14 / C++1y

New language features

Function return type deduction

  • auto

Alternate type deduction on declaration

  • decltype

Relaxed constexpr restrictions

Variable templates

Aggregate member initialization




Leave a Reply

Your email address will not be published. Required fields are marked *