Espacios de nombres
Variantes

C++17

De cppreference.com
< cpp

Las siguientes características fueron fusionadas en C++17:

  1. De las especificaciones técnicas: la biblioteca de sistema de archivos, la biblioteca de fundamentos v1 (incluyendo optional, any, string_view, asignadores polimórficos, buscadores, apply), paralelismo v1 (incluyendo políticas de ejecución, reduce, inclusive_scan, exclusive_scan), pero se eliminó exception_list. De la especificación técnica de funciones especiales: funciones matemáticas especiales, de la biblioteca de fundamentos v2: std::gcd, std::lcm
  2. De C11: std::aligned_alloc, std::timespec_get

Eliminados y obsoletos/en desuso

Eliminados

auto_ptr, objetos función obsoletos, std::random_shuffle, std::unexpected, los alias de iostreams obsoletos, trígrafos, la palabra clave register, incremento del tipo bool

Obsoletos/en desuso

std::iterator, std::raw_storage_iterator, std::get_temporary_buffer, std::is_literal_type, std::result_of, todo el archivo de encabezado <codecvt>

Nuevas características del lenguaje

Nuevos archivos de encabezado

Nuevas características de la biblioteca

En utility

En memory



En types

En algorithm

Relacionados con contenedores

En numeric

Otras

Informes de defectos

Informes de defectos corregidos en (289 centrales, 281 biblioteca)

Soporte de compiladores

Artículo principal: Soporte de compiladores de C++

Características principales del lenguaje C++17

Característica de C++17
 
Ponencia(s)
 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
IBM XLC++
Sun/Oracle C++
Embarcadero C++ Builder
Cray
Portland Group (PGI)
Nvidia nvcc
ID: Nuevas reglas de auto para inicialización de lista directa [https://wg21.link/N3922 [HTTPS://WG21.LINK/N3922
[1] N3922]]
6 3.9 19.12* 4.14 19.0 19.1 11.0
static_assert sin mensaje [https://wg21.link/N3928 [HTTPS://WG21.LINK/N3928
[2] N3928]]
6 2.5 19.10* 4.12 18.0 17.7 11.0
typename en un parámetro de plantilla de plantilla [https://wg21.link/N4051 [HTTPS://WG21.LINK/N4051
[3] N4051]]
5 3.5 19.0 (2015)* 4.10.1 17.0 17.7 Sí*
Eliminar trígrafos [https://wg21.link/N4086 [HTTPS://WG21.LINK/N4086
[4] N4086]]
5 3.5 16.0* 5.0 19.1 11.0
Definición de espacios de nombre anidados [https://wg21.link/N4230 [HTTPS://WG21.LINK/N4230
[5] N4230]]
6 3.6 19.0 (Update 3)* 4.12 17.0 17.7 11.0
Atributos para espacios de nombre y enumeradores [https://wg21.link/N4266 [HTTPS://WG21.LINK/N4266
[6] N4266]]
4.9 (partial)*
6
3.6 19.0 (2015)* 4.11 17.0 17.7 11.0
Literales de carácter u8 [https://wg21.link/N4267 [HTTPS://WG21.LINK/N4267
[7] N4267]]
6 3.6 19.0 (2015)* 4.11 17.0 17.7 11.0
Permitir evaluación constante para todos los argumentos de plantilla de no tipo [https://wg21.link/N4268 [HTTPS://WG21.LINK/N4268
[8] N4268]]
6 3.6 19.12* 5.0 19.0.1 19.1 11.0
Expresiones de pliegue [https://wg21.link/N4295 [HTTPS://WG21.LINK/N4295
[9] N4295]]
6 3.6 19.12* 4.14 19.0 18.1 11.0
Expresiones de pliegue unarias y paquetes de parámetros vacíos [https://wg21.link/P0036R0 [HTTPS://WG21.LINK/P0036R0
[10] P0036R0]]
6 3.9 19.12* 4.14 19.0 19.1 11.0
Eliminar uso obsoleto de la palabra clave register [https://wg21.link/P0001R1 [HTTPS://WG21.LINK/P0001R1
[11] P0001R1]]
7 3.8 19.11* 4.13 18.0 17.7 11.0
Remover operator++(bool) obsoleto [https://wg21.link/P0002R1 [HTTPS://WG21.LINK/P0002R1
[12] P0002R1]]
7 3.8 19.11* 4.13 18.0 17.7 11.0
Hacer las especificaciones de excepciones parte del sistema de tipos [https://wg21.link/P0012R1 [HTTPS://WG21.LINK/P0012R1
[13] P0012R1]]
7 4 19.12* 4.14 19.0 19.1 11.0
Inicialización de agregados con clases base [https://wg21.link/P0017R1 [HTTPS://WG21.LINK/P0017R1
[14] P0017R1]]
7 3.9 19.14* 5.0 19.0.1 19.1 11.0
__has_include en condicionales del preprocesador [https://wg21.link/P0061R1 [HTTPS://WG21.LINK/P0061R1
[15] P0061R1]]
5 19.11* 4.13 18.0 17.7 11.0
ID: Nueva especificación para constructores heredados (ID 1941 et al) [https://wg21.link/P0136R1 [HTTPS://WG21.LINK/P0136R1
[16] P0136R1]]
7 3.9 19.14* 6.1 19.1 11.0
Captura de lambda de *this [https://wg21.link/P0018R3 [HTTPS://WG21.LINK/P0018R3
[17] P0018R3]]
7 3.9 19.11* 4.14 19.0 18.1 11.0
Inicialización de lista directa de enumeraciones [https://wg21.link/P0138R2 [HTTPS://WG21.LINK/P0138R2
[18] P0138R2]]
7 3.9 19.11* 4.14 18.0 19.1 11.0
Expresiones lambda constexpr [https://wg21.link/P0170R1 [HTTPS://WG21.LINK/P0170R1
[19] P0170R1]]
7 5 19.11* 4.14 19.0 18.1 11.0
Tipos que difieren en begin y end en bucle for basado en rango [https://wg21.link/P0184R0 [HTTPS://WG21.LINK/P0184R0
[20] P0184R0]]
6 3.9 19.10* 4.12 18.0 17.7 11.0
Atributo [[fallthrough]] [https://wg21.link/P0188R1 [HTTPS://WG21.LINK/P0188R1
[21] P0188R1]]
7 3.9 19.10* 4.13 18.0 17.7 11.0
Atributo [[nodiscard]] [https://wg21.link/P0189R1 [HTTPS://WG21.LINK/P0189R1
[22] P0189R1]]
7 3.9 19.11* 4.13 18.0 17.7 11.0
Atributo [[maybe_unused]] [https://wg21.link/P0212R1 [HTTPS://WG21.LINK/P0212R1
[23] P0212R1]]
7 3.9 19.11* 4.13 18.0 17.7 11.0
Literales de punto flotante hexadecimales [https://wg21.link/P0245R1 [HTTPS://WG21.LINK/P0245R1
[24] P0245R1]]
3.0 19.11* 4.13 18.0 17.7 11.0
Usar atributos de espacios de nombres sin repetición [https://wg21.link/P0028R4 [HTTPS://WG21.LINK/P0028R4
[25] P0028R4]]
7 3.9 19.11* 4.13 18.0 17.7 11.0
Asignación de memoria dinámica para datos sobrealineados [https://wg21.link/P0035R4 [HTTPS://WG21.LINK/P0035R4
[26] P0035R4]]
7 4 19.12*

10.0.0*

4.14 19.0 19.1 11.0
Deducción de argumentos de plantillas de clase [https://wg21.link/P0091R3 [HTTPS://WG21.LINK/P0091R3
[27] P0091R3]]
7 5 19.14* 5.0 19.0.1 19.1 11.0
Parámetros de plantilla de no tipo con el tipo auto [https://wg21.link/P0127R2 [HTTPS://WG21.LINK/P0127R2
[28] P0127R2]]
7 4 19.14* 5.0 19.0.1 19.1 11.0
Elisión de copia obligatoria [https://wg21.link/P0135R1 [HTTPS://WG21.LINK/P0135R1
[29] P0135R1]]
7 4 19.13* 5.0 19.0.1 19.1 11.0
Reemplazo de objetos de clase que contienen miembros de referencia [https://wg21.link/P0137R1 [HTTPS://WG21.LINK/P0137R1
[30] P0137R1]]
7 6 19.14* 5.0 19.1 11.0
Orden de evaluación de expresiones más estricto [https://wg21.link/P0145R3 [HTTPS://WG21.LINK/P0145R3
[31] P0145R3]]
7 4 19.14* 5.0 19.0.1 19.1 11.0
Vínculos estructurados [https://wg21.link/P0217R3 [HTTPS://WG21.LINK/P0217R3
[32] P0217R3]]
7 4 19.11* 4.14 19.0 18.1 11.0*
Ignorar atributos desconocidos [https://wg21.link/P0283R2 [HTTPS://WG21.LINK/P0283R2
[33] P0283R2]]
3.9 19.11* 4.13 18.0 17.7 11.0
Instrucciones constexpr if [https://wg21.link/P0292R2 [HTTPS://WG21.LINK/P0292R2
[34] P0292R2]]
7 3.9 19.11* 4.14 19.0 18.1 11.0
if y switch con un inicializador [https://wg21.link/P0305R1 [HTTPS://WG21.LINK/P0305R1
[35] P0305R1]]
7 3.9 19.11* 4.14 18.0 18.1 11.0
Variables en línea [https://wg21.link/P0386R2 [HTTPS://WG21.LINK/P0386R2
[36] P0386R2]]
7 3.9 19.12* 4.14 19.0 18.1 11.0
Eliminar especificaciones de excepciones dinámicas [https://wg21.link/P0003R5 [HTTPS://WG21.LINK/P0003R5
[37] P0003R5]]
7 4 19.10* 4.14 19.0 19.1 11.0
Expansión de paquetes en declaraciones using [https://wg21.link/P0195R2 [HTTPS://WG21.LINK/P0195R2
[38] P0195R2]]
7 4 19.14* 5.0 19.0 19.1 11.0
ID: Coincidencia de argumentos de plantilla de plantilla excluye plantillas compatibles [https://wg21.link/P0522R0 [HTTPS://WG21.LINK/P0522R0
[39] P0522R0]]
7 4 19.12* 5.0 19.0.1 19.1 11.0
Característica de C++17
 
Ponencia(s)
 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
IBM XLC++
Sun/Oracle C++
Embarcadero C++ Builder
Cray
Portland Group (PGI)
Nvidia nvcc

Características de la biblioteca de C++17

Característica de C++17
 
Ponencia(s)
 
GCC libstdc++
Clang libc++
MSVC
Biblioteca Estándar
Apple Clang
Intel Parallel STL
Sun/Oracle C++
Biblioteca Estándar
Embarcadero C++ Builder
Biblioteca Estándar
Cray C++
Biblioteca Estándar
std::void_t N3911 6 3.6 19.0 (2015)* N/A 10.3
std::uncaught_exceptions() N4259 6 3.7 19.0 (2015)* N/A 10.3
std::size(), std::empty() y std::data() N4280 6 3.6 19.0 (2015)* N/A 10.3
Mejorar std::pair y std::tuple N4387 6 4 19.0 (Update 2)* N/A 10.3
std::bool_constant N4389 6 3.7 19.0 (2015)* N/A 10.3
std::shared_mutex (sin tiempo) N4508 6 3.7 19.0 (Update 2)* N/A 10.3
Rasgos de tipo de plantillas de variable P0006R0 7 3.8 19.0 (Update 2)* N/A 10.3
Rasgos de tipo para operadores lógicos P0013R1 6 3.8 19.0 (Update 2)* N/A 10.3
Estandarización de la especificación técnica de paralelismo P0024R2 9* 19.14* 18.0*
std::clamp() P0025R0 7 3.9 19.0 (Update 3)*

10.0.0*

N/A 10.3
Tamaño de interferencia de hardware P0154R1 12 19.11* N/A 10.3
Rasgos de tipo intercambiables (nothrow) P0185R1 7 3.9 19.0 (Update 3)*

10.0.0*

N/A 10.3
Biblioteca de sistema de archivos P0218R1 8 7 19.14*

11.0.0*

N/A 10.3
std::string_view N3921
P0220R1
7 4 19.10*

10.0.0*

N/A 10.3
std::any P0220R1 7 4 19.10*

10.0.0*

N/A 10.3
std::optional P0220R1 7 4 19.10*

10.0.0*

N/A 10.3
Recursos de memoria polimórficos P0220R1 9 19.13* N/A 10.3
Funciones matemáticas especiales P0226R1 7 19.14* N/A 10.3
C++17 debe referirse a C11 en lugar de C99 P0063R3 9 7 19.0 (2015)*
(parcial)*

10.0.0*

N/A
Mapas y Conjuntos (maps/sets) unidos P0083R3 7 8 19.12*

10.0.0*

N/A
std::variant P0088R3 7 4 19.10*

10.0.0*

N/A 10.3
std::make_from_tuple() P0209R2 7 3.9 19.10* N/A 10.3
std::has_unique_object_representations P0258R2 7 6 19.11* N/A 10.3
std::gcd() y std::lcm() P0295R0 7 4 19.11* N/A 10.3
std::not_fn P0005R4
P0358R1
7 3.9 19.12* N/A 10.3
Conversiones elementales de cadenas P0067R5 8 (no punto flotante)
11
7 (no punto flotante)
14 (no punto flotante from_chars)
19.14* (no punto flotante)*
19.24*

10.0.0* (no punto flotante)

N/A 10.3 (no punto flotante from_chars)
std::shared_ptr y std::weak_ptr con apoyo para arrays P0414R2 7 11 19.12*

12.0.0*

N/A 10.3
std::scoped_lock P0156R2 7 5 19.11* N/A 10.3
std::byte P0298R3 7 5 19.11* N/A 10.3
std::is_aggregate LWG2911 7 5 19.15* N/A 10.3
Característica de C++17
 
Ponencia(s)
 
GCC libstdc++
Clang libc++
MSVC
Biblioteca Estándar
Apple Clang
Intel Parallel STL
Sun/Oracle C++
Biblioteca Estándar
Embarcadero C++ Builder
Biblioteca Estándar
Cray C++
Biblioteca Estándar

Notas:

  • A partir de 2020-11-20, el último lanzamiento de Oracle Developer Studio es 12.6. Su documentación no menciona C++17.

* - planea sobre el número de versión para ver las notas

Morty Proxy This is a proxified and sanitized view of the page, visit original site.