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.
std::make_unique
std::shared_timed_mutex
and std::shared_lock
std::integer_sequence
std::exchange
std::quoted
basic_string
, duration
and complex
Main Article: C++14 compiler support.
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 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.
Working C++14 examples |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/14