Namespaces
Variants

C++14

De es.cppreference.net
< cpp

C++14 es una versión menor después de la versión principal C++11, que presenta principalmente mejoras menores y correcciones de defectos. Su aprobación fue anunciada el 18 de agosto de 2014. Fue lanzada el 15 de diciembre de 2014.

Antes de su aprobación, a veces se usaba C++1y para indicar su lanzamiento en la década de 2010.

Nuevas características del lenguaje

Nuevas características de la biblioteca

  • std::make_unique
  • std::shared_timed_mutex y std::shared_lock
  • std::integer_sequence
  • std::exchange
  • std::quoted
  • y muchas mejoras pequeñas a las instalaciones de biblioteca existentes, como
    • sobrecargas de dos rangos para algunos algoritmos
    • versiones de alias de tipo de los traits de tipo
    • literales definidos por el usuario para basic_string, duration y complex
    • etc.

Informes de defectos

Informes de defectos corregidos en C++14 (276 del núcleo, 158 de la biblioteca)

Soporte del compilador

Características del núcleo del lenguaje C++14

Característica de C++14

 
Documento(s)

 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
 
Embarcadero C++ Builder
IBM Open XL C++ for AIX
IBM Open XL C++ for z/OS
IBM XL C++
Sun/Oracle C++
Redacción ajustada para conversiones contextuales N3323 4.9 3.4 18.0* Sí 4.9 16.0 16.1 9.0 8.6  10.3 17.1.0 1.1.0 13.1.2* 5.15
Literales binarios  (FTM)* N3472 4.3*
4.9
2.9 19.0 (2015)* Sí 4.10 11.0 2015 9.0 8.6  10.3 17.1.0 1.1.0 13.1.2* 5.14
decltype(auto), Deducción del tipo de retorno para funciones normales  (FTM)*  (FTM)* N3638 4.8 (parcial)*
4.9
3.3 (parcial)*
3.4
19.0 (2015)* Sí 4.9 15.0 16.1 9.0 8.6  10.3 17.1.0 1.1.0 13.1.2* 5.15
Capturas de lambda inicializadas/generalizadas (init-capture)  (FTM)* N3648 4.5 (parcial)
4.9
3.4 19.0 (2015)* Sí 4.10 15.0 16.1 9.0 8.6  10.3 17.1.0 1.1.0 16.1.1* 5.15
Expresiones lambda genéricas  (FTM)* N3649 4.9 3.4 19.0 (2015)* Sí 4.10 16.0 16.1 9.0 8.6  10.3 17.1.0 1.1.0 13.1.2* 5.15
Plantillas de variables  (FTM)* N3651 5 3.4 19.0 (Update 2)* Sí 4.11 17.0 17.4 9.0 8.6  10.3 17.1.0 1.1.0 13.1.2* 5.15
constexpr extendidoconstexpr  (FTM)* N3652 5 3.4 19.10* Sí 4.11 17.0 17.4 9.0 8.6  10.3 17.1.0 1.1.0 13.1.2* 5.15
Agregados con inicializadores de miembros por defecto  (FTM)* N3653 5 3.3 19.10* Sí 4.9 16.0 16.1 9.0 8.6  10.3 17.1.0 1.1.0 16.1.1* 5.14
Omisión/extensión de asignaciones de memoria N3664 N/A 3.4 N/A Sí N/A N/A 17.4 N/A 8.6  10.3 17.1.0 1.1.0 N/A N/A
[[deprecated]] atributo deprecated N3760 4.9 3.4 19.0 (2015)* Sí 4.9 15.0*
16.0
16.1 9.0 8.6  10.3 17.1.0 1.1.0 13.1.2* 5.14
Desasignación con tamaño  (FTM)* N3778 5 3.4 19.0 (2015)* Sí 4.10.1 17.0 16.1 8.6  10.3 17.1.0 1.1.0 16.1.1* 5.14
Comilla simple como separador de dígitos N3781 4.9 3.4 19.0 (2015)* Sí 4.10 16.0 2015 9.0 8.6  10.3 17.1.0 1.1.0 13.1.2* 5.14
 

Característica de C++14
 

Documento(s)
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
 
Embarcadero C++ Builder
IBM Open XL C++ for AIX
IBM Open XL C++ for z/OS
IBM XL C++
Sun/Oracle C++

Características de la biblioteca C++14

Característica de C++14

 
Documento(s)

 
GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*
 
IBM Open XL C/C++ for AIX*
Sun/Oracle C++*
Embarcadero C++ Builder*
constexpr para <complex> N3302 5 3.4 19.0 (2015)* Sí  17.1.0 5.15 10.3
Objetos función de operador transparentes  (FTM)* N3421 4.9 3.4 18.0* Sí  17.1.0 5.15 10.3
std::result_of y SFINAE  (FTM)* N3462 5 Sí 19.0 (Update 2)* Sí  17.1.0 5.15 10.3
constexpr para <chrono> N3469 5 3.4 19.0 (2015)* Sí  17.1.0 5.15 10.3
constexpr para <array> N3470 5 3.4 19.0 (2015)* Sí  17.1.0 5.15 10.3
constexpr para <initializer_list>, <utility> y <tuple> N3471 5 3.4 19.0 (2015)* Sí  17.1.0 5.15 10.3
Mejora de std::integral_constant  (FTM)* N3545 5 3.4 19.0 (2015)* Sí  17.1.0 5.15 10.3
Literales definidos por el usuario para <chrono> y <string>  (FTM)*  (FTM)* N3642 5 3.4 19.0 (2015)* Sí  17.1.0 5.15 10.3
Iteradores de avance nulos  (FTM)* N3644 5 (parcial)
10
3.4 19.0 (2015)* Sí  17.1.0 5.15 10.3
std::quoted  (FTM)* N3654 5 3.4 19.0 (2015)* Sí  17.1.0 5.15 10.3
std::make_unique  (FTM)* N3656 4.9 3.4 18.0* Sí  17.1.0 5.15 10.3
Búsqueda asociativa heterogénea  (FTM)* N3657 5 3.4 19.0 (2015)* Sí  17.1.0 5.15 10.3
std::integer_sequence  (FTM)* N3658 5 3.4 19.0 (2015)* Sí  17.1.0 5.15 10.3
std::shared_timed_mutex N3659 5 3.4 19.0 (2015)* Sí  17.1.0 5.15 10.3
std::exchange  (FTM)* N3668 5 3.4 19.0 (2015)* Sí  17.1.0 5.15 10.3
Corrección de constexpr funciones miembro sin const N3669 5 3.4 19.0 (2015)* Sí  17.1.0 5.15 10.3
Acceso a tuplas por tipo: std::get<T>()  (FTM)* N3670 5 3.4 19.0 (2015)* Sí  17.1.0 5.15 10.3
Doble rango std::equal, std::is_permutation, std::mismatch  (FTM)* N3671 5 3.4 19.0 (2015)* Sí  17.1.0 5.15 10.3
Plantillas de alias para traits de transformación  (FTM)* N3655 4.9 3.4 18.0* Sí 
Literales definidos por el usuario para std::complex  (FTM)* N3779 4.9 3.4 19.0 (2015)* Sí 
DR11: std::is_null_pointer  (FTM)* LWG2247 4.9 3.4 19.0 (2015)*  
std::is_final  (FTM)* LWG2112 5 3.4 19.0 (2015)*  
std::make_reverse_iterator  (FTM)* LWG2285 5 3.4 19.0 (2015)*  
std::shared_timed_mutex  (FTM)* N3891 4.9 3.5 19.0 (2015)* Sí 
std::tuple_element_t  (FTM)* N3887 4.10 3.5 19.0 (2015)* Sí 
 

Característica de C++14
 

Documento(s)
GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*
 
IBM Open XL C/C++ for AIX*
Sun/Oracle C++*
Embarcadero C++ Builder*

* - pase el cursor sobre una celda marcada con el asterisco * para ver notas emergentes adicionales.
DRnn - el número nn después de "DR" denota la revisión de C++ objetivo a la que se aplica el Informe de defecto, por ejemplo, DR20 → C++20.

Enlaces externos

1.  C++14 - Wikipedia
2.  Ejemplos de C++14 en funcionamiento