C++14
From cppreference.com
                    
                                        
                    < cpp
                    
                                                            
                    C++14 is a minor version after the major version C++11, featuring mainly minor improvements and defect fixes. Its approval was announced on August 18, 2014. It was released on December 15, 2014.
Before its approval, C++1y is sometimes used to indicate its release in 2010s
| This section is incomplete | 
New language features
- variable templates
 - generic lambdas
 - lambda init-capture
 - new/delete elision
 - relaxed restrictions on constexpr functions
 - binary literals
 - digit separators
 - return type deduction for functions
 - aggregate classes with default non-static member initializers.
 
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 literals for basic_string, duration and complex
 - etc.
 
 
| This section is incomplete | 
Defect reports
Compiler support
Main Article: C++14 compiler support
C++14 core language features
|  C++14 feature | 
 Paper(s) | 
  GCC  | 
  Clang  | 
  MSVC  | 
  Apple Clang  | 
  EDG eccp  | 
  Intel C++  | 
  IBM XLC++  | 
  Sun/Oracle C++  | 
  Embarcadero C++ Builder  | 
  Cray  | 
  Nvidia HPC C++  (ex Portland Group/PGI)  | 
  Nvidia nvcc  | 
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Tweaked wording for contextual conversions | N3323 | 4.9 | 3.4 | 18.0* | Yes | 4.9 | 16.0 | 13.1.2* | 5.15 | 10.3 | 8.6 | 16.1 | 9.0 | |
| Binary literals | N3472 | 4.3 (GNU) 4.9  | 
2.9 | 19.0 (2015)* | Yes | 4.10 | 11.0 | 13.1.2* | 5.14 | 10.3 | 8.6 | 2015 | 9.0 | |
| decltype(auto), Return type deduction for normal functions | N3638 | 4.8 (partial)* 4.9  | 
3.3 (partial)* 3.4  | 
19.0 (2015)* | Yes | 4.9 | 15.0 | 13.1.2* | 5.15 | 10.3 | 8.6 | 16.1 | 9.0 | |
| Initialized/Generalized lambda captures (init-capture) | N3648 | 4.5 (partial) 4.9  | 
3.4 | 19.0 (2015)* | Yes | 4.10 | 15.0 | 16.1.1* | 5.15 | 10.3 | 8.6 | 16.1 | 9.0 | |
| Generic lambda expressions | N3649 | 4.9 | 3.4 | 19.0 (2015)* | Yes | 4.10 | 16.0 | 13.1.2* | 5.15 | 10.3 | 8.6 | 16.1 | 9.0 | |
| Variable templates | N3651 | 5 | 3.4 | 19.0 (Update 2)* | Yes | 4.11 | 17.0 | 13.1.2* | 5.15 | 10.3 | 8.6 | 17.4 | 9.0 | |
| Extended constexpr | N3652 | 5 | 3.4 | 19.10* | Yes | 4.11 | 17.0 | 13.1.2* | 5.15 | 10.3 | 8.6 | 17.4 | 9.0 | |
| Aggregates with default member initializers | N3653 | 5 | 3.3 | 19.10* | Yes | 4.9 | 16.0 | 16.1.1* | 5.14 | 10.3 | 8.6 | 16.1 | 9.0 | |
| Omitting/extending memory allocations | N3664 | N/A | 3.4 | N/A | Yes | N/A | N/A | N/A | N/A | 10.3 | 8.6 | 17.4 | N/A | |
 [[deprecated]] attribute
 | 
N3760 | 4.9 | 3.4 | 19.0 (2015)* | Yes | 4.9 | 15.0* 16.0  | 
13.1.2* | 5.14 | 10.3 | 8.6 | 16.1 | 9.0 | |
| Sized deallocation | N3778 | 5 | 3.4 | 19.0 (2015)* | Yes | 4.10.1 | 17.0 | 16.1.1* | 5.14 | 10.3 | 8.6 | 16.1 | ||
| Single quote as digit separator | N3781 | 4.9 | 3.4 | 19.0 (2015)* | Yes | 4.10 | 16.0 | 13.1.2* | 5.14 | 10.3 | 8.6 | 2015 | 9.0 | |
|  C++14 feature | 
 Paper(s) | 
  GCC  | 
  Clang  | 
  MSVC  | 
  Apple Clang  | 
  EDG eccp  | 
  Intel C++  | 
  IBM XLC++  | 
  Sun/Oracle C++  | 
  Embarcadero C++ Builder  | 
  Cray  | 
  Nvidia HPC C++ (ex Portland Group/PGI)  | 
  Nvidia nvcc  | 
C++14 library features
|  C++14 feature | 
 Paper(s) | 
  GCC libstdc++  | 
  Clang libc++  | 
  MSVC STL  | 
  Apple Clang  | 
  Sun/Oracle C++ Standard Library  | 
  Embarcadero C++ Builder Standard Library  | 
|
|---|---|---|---|---|---|---|---|---|
 constexpr for <complex>
 | 
N3302 | 5 | 3.4 | 19.0 (2015)* | Yes | 5.15 | 10.3 | |
| Transparent operator functors | N3421 | 4.9 | 3.4 | 18.0* | Yes | 5.15 | 10.3 | |
| std::result_of and SFINAE | N3462 | 5 | Yes | 19.0 (Update 2)* | Yes | 5.15 | 10.3 | |
 constexpr for <chrono>
 | 
N3469 | 5 | 3.4 | 19.0 (2015)* | Yes | 5.15 | 10.3 | |
 constexpr for <array>
 | 
N3470 | 5 | 3.4 | 19.0 (2015)* | Yes | 5.15 | 10.3 | |
 constexpr for <initializer_list>, <utility> and <tuple>
 | 
N3471 | 5 | 3.4 | 19.0 (2015)* | Yes | 5.15 | 10.3 | |
| Improved std::integral_constant | N3545 | 5 | 3.4 | 19.0 (2015)* | Yes | 5.15 | 10.3 | |
| User-defined literals for <chrono> and <string> | N3642 | 5 | 3.4 | 19.0 (2015)* | Yes | 5.15 | 10.3 | |
| Null forward iterators | N3644 | 5 (partial)  10  | 
3.4 | 19.0 (2015)* | Yes | 5.15 | 10.3 | |
| std::quoted | N3654 | 5 | 3.4 | 19.0 (2015)* | Yes | 5.15 | 10.3 | |
| std::make_unique | N3656 | 4.9 | 3.4 | 18.0* | Yes | 5.15 | 10.3 | |
| Heterogeneous associative lookup | N3657 | 5 | 3.4 | 19.0 (2015)* | Yes | 5.15 | 10.3 | |
| std::integer_sequence | N3658 | 5 | 3.4 | 19.0 (2015)* | Yes | 5.15 | 10.3 | |
| std::shared_timed_mutex | N3659 | 5 | 3.4 | 19.0 (2015)* | Yes | 5.15 | 10.3 | |
| std::exchange | N3668 | 5 | 3.4 | 19.0 (2015)* | Yes | 5.15 | 10.3 | |
 fixing constexpr member functions without const
 | 
N3669 | 5 | 3.4 | 19.0 (2015)* | Yes | 5.15 | 10.3 | |
| std::get<T>() | N3670 | 5 | 3.4 | 19.0 (2015)* | Yes | 5.15 | 10.3 | |
| Dual-Range std::equal, std::is_permutation, std::mismatch | N3671 | 5 | 3.4 | 19.0 (2015)* | Yes | 5.15 | 10.3 | |
|  C++14 feature | 
 Paper(s) | 
  GCC libstdc++  | 
  Clang libc++  | 
  MSVC STL  | 
  Apple Clang  | 
  Sun/Oracle C++ Standard Library  | 
  Embarcadero C++ Builder Standard Library  | 
* - hover over a cell marked with the star * to see additional pop-up notes.
DRnn - the number nn after "DR" denotes target C++ revision the Defect Report is applied to, e.g., DR20 → C++20.
External links
| Working C++14 examples |