Namespaces
Variants

Experimental C++ Features

From cppreference.net

El comité de estándares de C++ publica extensiones experimentales del lenguaje y bibliotecas de C++ para futuras estandarizaciones.

Nota: hasta 2012, estas publicaciones utilizaban el formato TR (informe técnico). Desde 2012 el procedimiento ISO cambió para usar el formato TS (especificación técnica).

Contenidos

Especificaciones TR/TS

Número ISO Nombre Estado Enlaces, encabezados
ISO/IEC TR 18015:2006 Informe Técnico sobre Rendimiento de C++ Publicado 2006 ( Tienda ISO ).

Borrador: TR18015 (2006-02-15).

ISO/IEC TR 19768:2007 Informe Técnico sobre Extensiones de la Biblioteca de C++ Publicado 2007-11-15 ( Tienda ISO ).

Borrador: N1836 (2005-06-24)
ISO 29124 separado, el resto fusionado en C++11.

ISO/IEC 29124:2010 Extensiones a la biblioteca de C++ para soportar funciones matemáticas especiales Publicado 2010-09-03 ( Tienda ISO ).

Borrador final: N3060 (2010-03-06).
Incorporado en C++17 .

Funciones especiales (experimental), Funciones especiales
ISO/IEC TR 24733:2011 Extensiones para el lenguaje de programación C++ para soportar aritmética de coma flotante decimal Publicado 2011-10-25 ( Tienda ISO )

Borrador: N2849 (2009-03-06).
Puede ser reemplazado por un TS futuro o fusionado en una revisión futura de C++ (la propuesta de fusión más reciente fue N3871 ).

ISO/IEC TS 18822:2015 Especificación Técnica del Sistema de Archivos de C++ Publicado 2015-06-18 ( Tienda ISO ). Borrador final: N4100 (2014-07-04).

Incorporado en C++17 .

Sistema de Archivos (experimental), Sistema de Archivos , <filesystem>
ISO/IEC TS 19570:2015 Extensiones de C++ para Paralelismo Publicado 2015-06-24. ( Tienda ISO ). Borrador final: N4507 (2015-05-05).

Incorporado en C++17.

Paralelismo
ISO/IEC TS 19841:2015 Especificación Técnica de Memoria Transaccional Publicado 2015-09-16, ( Tienda ISO ). Borrador final: N4514 (2015-05-08). Memoria transaccional
ISO/IEC TS 19568:2015 Extensiones de C++ para Fundamentos de Biblioteca Publicado 2015-09-30, ( Tienda ISO ). Borrador final: N4480 (2015-04-07).

Fusionado en C++17 excepto por los rasgos de invocación.

Extensiones de biblioteca
ISO/IEC TS 19217:2015 Extensiones de C++ para Conceptos Publicado 2015-11-13 ( Tienda ISO ). Borrador final: N4553 (2015-10-02). Borrador actual: P0734R0 (2017-07-14).

Incorporado en C++20 (con modificaciones).

Restricciones y conceptos (experimental), Conceptos , <concepts>
ISO/IEC TS 19571:2016 C++ Extensions for Concurrency Publicado 2016-01-19 ( Tienda ISO ). Borrador final: P0159R0 (2015-10-22).

Parcialmente incorporado en C++20.

Concurrency
ISO/IEC TS 19568:2017 Extensiones de C++ para Fundamentos de Biblioteca, Versión 2 Publicado 2017-03-30 ( Tienda ISO ). Borrador: N4617 (2016-11-28).

Parcialmente incorporado en C++17 y C++20.

Extensiones de biblioteca 2
ISO/IEC TS 21425:2017 Ranges TS Publicado 2017-12-05 ( Tienda ISO ). Borrador: N4685 (2017-07-31).

Incorporado en C++20 .

Ranges (experimental), Ranges , <ranges>
ISO/IEC TS 22277:2017 Coroutines TS Publicado 2017-12-05 ( Tienda ISO ). Borrador: N4736 (2018-03-31). Borrador más reciente: N4775 (2018-10-07).

Incorporado en C++20 .

<coroutine>
ISO/IEC TS 19216:2018 Networking TS Publicado 2018-04-24 ( Tienda ISO ). Borrador: N4734 (2017-04-04). Último borrador: N4771 (2018-10-08).
Ver también propuestas no-TS
  • Standard Secure Networking - P2586R0 (2022-09-13)
  • Sender-Receiver Interface For Networking - P2762R2 (2023-10-12)
  • Una dirección propuesta para C++ Standard Networking basada en IETF TAPS - P3185R0 (2024-12-14)
  • API propuesta para crear conexiones de red basadas en TAPS - P3482R0 (2024-12-14)
Networking
ISO/IEC TS 21544:2018 Módulos TS Publicado 2018-05-16 ( Tienda ISO ). Borrador Final: N4720 (2018-01-29).

Incorporado en C++20 .

ISO/IEC TS 19570:2018 Paralelismo TS Versión 2 Publicado 2018-11-15 ( Tienda ISO ). Borrador final: N4793 (2018-11-26). Borrador post-publicación: N4808 (2019-03-11). Ver también propuestas no-TS de std::simd abajo . Paralelismo 2
ISO/IEC TS 23619:2021 Reflection TS Publicado 2021-10-11 ( Tienda ISO ). Borrador: N4856 (2020-03-02). Ver también propuestas no-TS abajo . Reflection
Numerics Desarrollo temprano. Borrador: P1889R1 (2019-12-27).
ISO/IEC TS 9922 Concurrency TS Versión 2 Publicado 2024-10-09 ( Tienda ISO ). Borrador: N4956 (2023-07-05). Concurrencia 2
ISO/IEC TS 19568:2024 Extensiones de C++ para Fundamentos de Biblioteca, Versión 3 Publicado 2024-08-26 ( Tienda ISO ). Borrador: N4948 (2023-05-08). Extensiones de biblioteca 3
ISO/IEC DTS 12907 Especificación Técnica de Memoria Transaccional, Versión 2 Desarrollo temprano. Borrador: N4923 (2022-10-14).
ISO/IEC NP 19569 Array Extensions TS × Retirado. Borrador abandonado: N3820 (2013-10-10).

Propuestas no TS

Nombre Estado Enlaces, Encabezados
Álgebra Lineal Incorporado en C++26 . Propuesta: P1673R13 (2023-11-10).
Más propuestas:
<linalg>
std::execution Fusionado en C++26 . Propuesta: P2300R10 (2024-06-28).
Más propuestas:
  • Contexto de ejecución del sistema - P2079R8 (2025-05-18)
  • Interfaz Emisor-Receptor para Networking - P2762R2 (2023-10-12)
  • Puntos de personalización de miembros para Emisores y Receptores - P2855R1 (2024-02-22)
  • Un modelo de eventos para ejecutores de C++ - P2882R0 (2023-05-11)
  • Personalización de algoritmos de emisores - P2999R3 (2023-12-13)
  • std::execution introducción - P3090R0 (2024-02-14)
  • Un plan para std::execution para C++26 - P3109R0 (2024-02-12)
  • Mejora de diagnósticos para expresiones de emisores - P3164R4 (2025-04-28)
  • Reconsiderando el algoritmo std :: execution :: on - P3175R3 (2024-06-25)
  • Una consulta de emisor para comportamiento de finalización - P3206R0 (2025-01-13)
  • finally , write_env , y adaptadores de emisor unstoppable - P3284R4 (2025-05-16)
  • Corrección de personalización de algoritmos de emisores perezosos - P3303R1 (2024-06-25)
  • Una utilidad para crear entornos de ejecución - P3325R5 (2024-11-22)
  • ¿Cuándo sabes que connect no lanza excepciones? - P3388R2 (2025-04-01)
  • std :: execution correcciones de redacción - P3396R1 (2024-11-19)
  • Habilitar cancelación más eficiente de emisores basada en tokens de parada - P3409R1 (2024-11-17)
  • system_scheduler en Win32, Darwin y Linux - P3456R0 (2024-10-15)
  • Resumen de problemas de std :: execution :: bulk ( ) - P3481R3 (2025-04-16)
  • Diagnósticos de emisor de alta calidad con excepciones constexpr - P3557R2 (2025-05-16)
  • Variantes opcionales en emisor-receptor - P3570R1 (2025-05-19)
  • Soporte no bloqueante para std::execution - P3669R1 (2025-05-17)
  • Eliminar std::execution::split - P3682R0 (2025-05-06)
  • Renombrar async_scope_token - P3685R0 (2025-05-07)
  • Renombrar join y nest en propuesta de async_scope - P3706R0 (2025-05-19)
Ejecución (experimental),
Ejecución ,
<execution>
std:: inplace_vector Integrado en C++26 . Propuesta: P0843R14 (2024-06-26).
Más propuestas:
  • inplace_vector - P0843 ( R7 ) Presentación LEWG - P2925R0 (2023-06-16)
  • Una dirección para Vector - P3147R1 (2024-03-18)
  • Un std::inplace_vector consciente del asignador - P3160R2 (2024-10-15)
  • No, inplace_vector no debería tener un Allocator - P3581R0 (2025-01-13)
  • Presentación LEWG Hagenberg para P3581 . No, inplace_vector no debería tener un Allocator - P3636R0 (2025-02-13)
  • Comparaciones entre capacidades para std::inplace_vector - P3698R0 (2025-05-19)
<inplace_vector>
experimental::simd
std::datapar::simd
Fusionado en C++26 . Proposal: P1928R15 (2024-11-22).
The main document (TS ISO/IEC 19570:2018) is described in "Extensiones de C++ para Paralelismo V2" above.
Más propuestas:
Tipos de datos paralelos (experimental),
Tipos de datos paralelos ,
<simd>
Contratos Fusionado en C++26 . Proposal: Contracts for C++ - P2900R14 (2025-02-13)
Más propuestas:
  • Una Propuesta para Publicar una Especificación Técnica para Contratos - P2659R2 (2022-11-30)
  • Propuesta de Contracts TS - P2660R0 (2022-10-14)
  • Enmiendas diversas al TS de Contratos - P2661R0 (2022-10-15)
  • Contratos para C++: Priorizando Seguridad - P2680R1 (2022-12-15)
  • Un plan propuesto para contratos en C++ - P2695R1 (2023-02-09)
  • Propuesta de Sintaxis de Contratos Centrados en Condiciones - P2737R0 (2022-12-30)
  • Contratos para C++: Priorizando la Seguridad - Diapositivas de presentación - P2743R0 (2022-12-13)
  • Evaluación de Contratos Verificados - P2751R1 (2023-02-14)
  • Un Plan Audaz para una Instalación Completa de Contratos - P2755R1 (2024-04-11)
  • La idea detrás del MVP de contratos - P2817R0 (2023-03-05)
  • Propuesta de Contratos que Soportan el Estilo Const-On-Definition - P2829R0 (2023-04-13)
  • Semántica de manejo de violaciones de contrato para el MVP de contratos - P2852R0 (2023-04-24)
  • La Regla de Lakos: Los Contratos Estrechos y noexcept Son Inherentemente Incompatibles - P2861R0 (2023-05-19)
  • Requisitos para una sintaxis de Contratos - P2885R3 (2023-10-05)
  • Contratos en lambdas - P2890R2 (2023-12-13)
  • Evaluación constante de Contratos - P2894R2 (2024-01-11)
  • Preguntas de diseño pendientes para el MVP de Contratos - P2896R0 (2023-08-22)
  • Contratos para C++ - Fundamentos - P2899R1 (2025-03-14)
  • Un Enfoque Basado en Principios para Preguntas de Diseño Abiertas en Contratos - P2932R3 (2024-01-16)
  • Una Sintaxis Similar a Atributos para Contratos - P2935R4 (2023-11-05)
  • Los contratos deben evitar divulgar información sensible - P2947R0 (2023-07-20)
  • Diapositivas para P2861R0 : Contratos Estrechos y noexcept son Inherentemente Incompatibles - P2949R0 (2023-07-14)
  • Contratos y funciones virtuales para el MVP de Contratos - P2954R0 (2023-08-03)
  • Contratos y corrutinas - P2957R2 (2024-10-14)
  • Una sintaxis natural para Contracts - P2961R2 (2023-11-08)
  • Una Visión General de las Opciones de Sintaxis para Contratos - P3028R0 (2023-11-05)
  • Protección contra modificaciones en contratos - P3071R1 (2023-12-17)
  • Eliminar evaluation_undefined_behavior y will_continue del MVP de Contratos - P3073R0 (2024-01-27)
  • ¿Deberían existir ignore y observe para la evaluación constante de contratos? - P3079R0 (2024-01-11)
  • Contratos para C++: Soporte para funciones virtuales - P3097R0 (2024-04-15)
  • Contratos para C++: Capturas de postcondición - P3098R1 (2024-12-11)
  • Comportamiento indefinido y erróneo son violaciones de contrato - P3100R2 (2025-05-19)
  • Correcciones Técnicas de Tokio para Contratos - P3119R1 (2024-05-09)
  • Contratos en funciones virtuales para el MVP de Contratos - P3165R0 (2024-02-27)
  • Contratos heredados - P3169R0 (2024-04-14)
  • Soporte para pruebas de contrato - P3183R1 (2024-05-22)
  • Diapositivas para la presentación LEWG de P2900R6 : Contracts for C++ - P3189R0 (2024-03-19)
  • Diapositivas para la presentación LEWG de P2900R7 : Contracts for C++ - P3190R0 (2024-03-20)
  • Una respuesta a las encuestas del EWG de Tokio sobre el MVP de Contratos ( P2900R6 ) - P3197R0 (2024-04-12)
  • Una conclusión de la reunión de LEWG en Tokio sobre el MVP de Contratos - P3198R0 (2024-03-29)
  • ¿Por qué Contratos? - P3204R0 (2024-11-07)
  • El contrato de sort() - P3212R0 (2024-07-03)
  • Contratos para C++: Nombrando la semántica Louis - P3226R0 (2024-04-12)
  • Contratos para C++: Corrección de la API de manejo de violaciones de contrato - P3227R1 (2024-10-24)
  • Contratos para C++: Revisando la omisión y duplicación de comprobaciones de contratos - P3228R1 (2024-05-21)
  • Hacer el comportamiento erróneo compatible con Contracts - P3229R1 (2025-02-10)
  • Una propuesta alternativa para nombrar la semántica de contratos - P3238R0 (2024-05-06)
  • Una sintaxis unificada para Pattern Matching y Contracts al introducir un nuevo nombre - P3249R0 (2024-05-22)
  • Contratos de C++ con respecto a punteros a función - P3250R0 (2024-05-07)
  • Contratos y corrutinas de C++ - P3251R0 (2024-05-07)
  • Hacer que el predicado de contract_assert sea más regular - P3257R0 (2024-04-26)
  • Contratos de Envío en un TS - P3265R3 (2024-05-28)
  • Enfoques para Contratos en C++ - P3267R1 (2024-05-22)
  • Desafíos de Constificación de Contratos en C++ Respecto al Código Actual - P3268R0 (2024-05-07)
  • No Enviar Contratos como un TS - P3269R0 (2024-05-21)
  • Repetición, Elisión y Constificación con respecto a contract_assert - P3270R0 (2024-05-22)
  • Tipos de Uso de Funciones (Contratos para Punteros a Funciones) - P3271R1 (2024-10-15)
  • P2900 Es Superior a un TS de Contratos - P3276R0 (2024-05-18)
  • Contratos: Protegiendo al Protector - P3285R0 (2024-05-15)
  • Integración de Aserciones Existentes con Contratos - P3290R2 (2024-09-06)
  • C++26 Necesita Verificación de Contratos - P3297R1 (2024-06-21)
  • Un enfoque opcional para la integración de mecanismos de aserción tradicionales en contratos de C++ - P3311R0 (2024-05-22)
  • Contratos resueltos en tiempo de compilación - P3317R0 (2024-05-22)
  • Interacción de Contratos Con Herramientas - P3321R0 (2024-07-12)
  • Aserciones de contrato en punteros a función - P3327R0 (2024-10-16)
  • Puntos de Control Observables Durante la Evaluación de Contratos - P3328R0 (2024-06-14)
  • Experiencia de Uso para Contratos con BDE - P3336R0 (2024-06-23)
  • Contratos - ¿Qué estamos haciendo aquí (Presentación EWG) - P3343R0 (2024-06-25)
  • Funciones Virtuales en Contratos (EWG - Presentación para P3097 ) - P3344R0 (2024-06-28)
  • Invariantes de clase y filosofía de verificación de contratos - P3361R1 (2024-07-23)
  • Análisis estático y "seguridad" de los Contratos, P2900 vs P2680 / P3285 - P3362R0 (2024-08-13)
  • Aserciones de contrato versus análisis estático y "seguridad" - P3376R0 (2024-10-14)
  • Análisis Estático de Contratos con P2900 - P3386R1 (2024-11-25)
  • Aserciones de contrato en corrutinas - P3387R0 (2024-10-09)
  • Especificación de Propiedades de Aserción de Contratos con Etiquetas - P3400R1 (2025-02-28)
  • Mejorar el manejo de excepciones lanzadas desde predicados de contrato - P3417R1 (2025-03-05)
  • Informe de Implementadores de Contratos - P3460R0 (2024-10-16)
  • Fortalecimiento de la biblioteca estándar - P3471R4 (2025-02-14)
  • La constificación no debe ser parte del MVP ( M ínimo V iable P roducto) - P3478R0 (2024-10-16)
  • Explorando predicados de contrato estrictos - P3499R1 (2025-02-09)
  • ¿Son los Contratos 'seguros'? - P3500R1 (2025-02-09)
  • Diapositivas para P2900R11 - Contracts for C++ - P3502R0 (2024-11-18)
  • P2900 aún no está listo para C++26 - P3506R0 (2025-01-13)
  • Manejadores de violación vs noexcept - P3541R1 (2025-01-07)
  • Contratos del Lenguaje Central Por Defecto - P3558R1 (2025-02-03)
  • Preocupaciones de contrato - P3573R0 (2025-01-12)
  • Requiere un manejador de violación de contrato predeterminado que no lance excepciones - P3577R0 (2025-01-12)
  • ¿Observó una violación de contrato? ¡Omita las aserciones subsiguientes! - P3582R0 (2025-01-13)
  • Contratos, Tipos y Funciones - P3583R0 (2025-01-13)
  • Contextualizando las Preocupaciones sobre Contratos - P3591R0 (2025-02-03)
  • Aserciones de Contrato Implícito Iniciales - P3599R0 (2025-02-03)
  • Contratos y perfiles: qué podemos enviar razonablemente en C++26 - P3608R0 (2025-02-01)
  • Eliminar contratos en funciones virtuales por ahora - P3616R0 (2025-02-08)
  • Hacer los contratos confiables por defecto - P3640R0 (2025-03-17)
  • Adiciones menores al fortalecimiento de la biblioteca estándar de C++26 - P3697R0 (2025-05-16)
Aserciones de contrato ,
Especificadores de contrato de función ,
contract_assert ,
pre , post ,
<contracts>
Reflexión El documento principal (ISO/IEC TS 23619:2021) se describe en Reflection TS anteriormente.
Más propuestas:
  • Reflexión escalable en C++ - P1240R2 (2022-01-14)
  • Sentencias de expansión - P1306R4 (2025-05-17)
  • Reflexión sobre atributos - P1887R1 (2020-01-13)
  • Metaprogramación - P2237R0 (2020-10-15)
  • Enlaces de Python con reflexión basada en valores - P2911R1 (2023-10-13)
  • Reflexión para C++26 - P2996R12 (2025-05-17)
  • Uso de reflexión para reemplazar un metalenguaje para generar enlaces JS - P3010R0 (2023-10-13)
  • Comparación ABI con reflexión - P3095R0 (2024-02-15)
  • Reflexión de parámetros de función en Reflexión para C++26 - P3096R9 (2025-05-15)
  • Extensiones generativas para reflexión - P3157R1 (2024-05-22)
  • Sintaxis para reflexión - P3381R0 (2024-09-17)
  • Reflexión de atributos - P3385R5 (2025-05-19)
  • Anotaciones para reflexión - P3394R3 (2025-05-17)
  • Resumen de opciones de sintaxis de reflexión - P3419R0 (2024-10-11)
  • Reflexión de plantillas - P3420R1 (2025-01-13)
  • El encabezado de reflexión debe minimizar dependencias de la biblioteca estándar - P3429R1 (2024-11-29)
  • Reflexión y metaprogramación - P3435R0 (2024-10-14)
  • Principios predeterminados propuestos: Reflejar C++, Generar C++ - P3437R1 (2024-11-07)
  • Reflexión sobre el proceso SG21 2024 - P3443R0 (2024-10-14)
  • Una sugerencia para control de acceso en reflexión - P3451R0 (2024-10-15)
  • Reflexiones sobre reflexión y acceso - P3493R0 (2024-11-10)
  • Modelado de control de acceso con reflexión - P3547R1 (2025-02-09)
  • Manejo de errores en reflexión - P3560R1 (2025-05-19)
  • Separar define_aggregate de Reflexión - P3569R0 (2025-01-11)
  • Reconsiderar acceso de reflexión para C++26 - P3587R0 (2025-01-13)
  • No eliminar ni posponer access_context::unchecked - P3614R0 (2025-02-06)
  • std::meta::reflect_constant_ {array,string} - P3617R0 (2025-05-16)
  • Heredar std :: meta :: exception de std::exception - P3637R0 (2025-03-08)
  • Ajustes finales para Reflexión en C++26 - P3687R0 (2025-05-15)
Reflexión (experimental)
Coincidencia de Patrones Desarrollo temprano. Borrador P1371R3 (2020-09-15).
Más propuestas:
  • Pattern Matching usando is y as - P2392R3 (2024-10-16)
  • Pattern Matching: match expresión - P2688R5 (2025-01-13)
  • switch para Pattern Matching - P2940R0 (2022-04-18)
  • Identificadores para Pattern Matching - P2941R0 (2022-02-24)
  • Una Postcondición is una Coincidencia de Patrones - P3210R2 (2024-09-10)
  • Una sintaxis unificada para Pattern Matching y Contracts al introducir un nuevo nombre - P3249R0 (2024-05-22)
  • Una notación más simple para PM - P3332R0 (2024-06-18)
  • Diapositivas para P2688R2 - Pattern Matching: match Expresión - P3476R0 (2024-10-16)
  • Pattern Matching: Punto de Personalización para Tipos Suma Abiertos - P3521R0 (2024-12-17)
  • Pattern Matching: *variant-like* y 'std::expected' - P3527R1 (2025-01-13)
  • Pattern matching - P3572R0 (2025-01-12)
Perfiles Desarrollo temprano.
Más propuestas:
  • Safety Profiles: Type-and-resource Safe programming in ISO Standard C++ - P2816R0 (2023-02-16)
  • Concrete suggestions for initial Profiles - P3038R0 (2023-12-16)
  • Core safety Profiles: Specification, adoptability, and impact - P3081R2 (2025-02-03)
  • A framework for Profiles development - P3274R0 (2024-05-10)
  • A Safety Profile Verifying Class Initialization - P3402R3 (2025-05-17)
  • Profile invalidation - eliminating dangling pointers - P3446R0 (2024-10-14)
  • Profiles syntax - P3447R0 (2024-10-14)
  • Response to Core Safety Profiles ( P3081R0 ) - P3543R0 (2024-12-17)
  • The Plethora of Problems With Profiles - P3586R0 (2025-01-13)
  • C++ Profiles: The Framework - P3589R2 (2025-05-19)
  • Contracts and profiles: what can we reasonably ship in C++26 - P3608R0 (2025-02-01)
  • Dealing with pointer errors: Separating static and dynamic checking - P3611R0 (2025-02-04)
  • Easy-to-adopt security profiles for preventing RCE (remote code execution) in existing C++ code - P3627R0 (2025-02-11)
  • A principled approach to safety profiles - P3649R0 (2025-05-19)
  • 21st Century C++ - P3650R0 (2025-03-05)
  • Note to the C++ standards committee members - P3651R0 (2025-03-06)
  • Making Safe C++ happen - P3700R0 (2025-05-19)
  • What are profiles? - P3704R0 (2025-05-19)
Estadísticas Desarrollo temprano.
Más propuestas:
Biblioteca de Gráficos Desarrollo temprano.
Más propuestas:
  • Graph Library: Overview - P3126R3 (2025-04-13)
  • Graph Library: Algorithms - P3128R3 (2025-04-13)
  • Graph Library: Graph Container Interface - P3130R3 (2025-04-13)
  • Graph Library: Graph Containers - P3131R3 (2025-04-13)
Gráficos 2D Desarrollo temprano. Borrador P0267R10 (2019-10-07).

Véase también

Documentación de C para Características experimentales de C

Enlaces externos

1. Lista de documentos PL22.16/WG21 - Todos los documentos del comité de C++ (TS/propuestas) para 2016-2025.
2. Propuestas JTC1/SC22/WG21 (correo) para 2025 .