C++ standard libraries extensions
La Versión 1 de las Extensiones de C++ para Fundamentos de Biblioteca, ISO/IEC TS 19568:2015 define los siguientes componentes nuevos para la biblioteca estándar de C++:
Contenidos |
No seleccionado para inclusión en C++17
Los siguientes componentes de ISO/IEC TS 19568:2015 no fueron seleccionados para inclusión en C++17.
Versiones modificadas de clases existentes para soportar asignadores con borrado de tipo
|
Definido en el encabezado
<experimental/functional>
|
|
|
una versión modificada de
std::function
con soporte para asignadores de memoria con borrado de tipo
(plantilla de clase) |
|
|
Definido en el encabezado
<experimental/future>
|
|
|
una versión modificada de
std::promise
con soporte para asignadores de memoria con borrado de tipo
(plantilla de clase) |
|
|
una versión modificada de
std::packaged_task
con soporte para asignadores de memoria con borrado de tipo
(plantilla de clase) |
|
Adaptadores de recursos de memoria
|
adapta un asignador en un
memory_resource
(plantilla de alias) |
Utilidades generales
|
Definido en el encabezado
<experimental/utility>
|
|
|
tipo de marcador de posición para el borrado de tipos, como en los asignadores de memoria
(clase) |
|
|
Definido en el encabezado
<experimental/type_traits>
|
|
|
deduce el tipo de función implícito del objeto invocable cuando se llama con los tipos de argumentos dados
(plantilla de clase) |
|
Macros de prueba de características
|
Definido en el encabezado
<experimental/optional>
|
|
|
__cpp_lib_experimental_optional
|
un valor de al menos
201411
indica que el tipo optional está soportado
(constante de macro) |
|
Definido en el encabezado
<experimental/any>
|
|
|
__cpp_lib_experimental_any
|
un valor de al menos
201411
indica que el tipo any está soportado
(constante de macro) |
|
Definido en el encabezado
<experimental/string_view>
|
|
|
__cpp_lib_experimental_string_view
|
un valor de al menos
201411
indica que la plantilla basic_string_view está soportada
(constante de macro) |
|
Definido en el encabezado
<experimental/tuple>
|
|
|
__cpp_lib_experimental_apply
|
un valor de al menos
201402
indica que la función apply() de tuple está soportada
(constante de macro) |
|
Definido en el encabezado
<experimental/type_traits>
|
|
|
__cpp_lib_experimental_type_trait_variable_templates
|
un valor de al menos
201402
indica que los rasgos de tipo de plantillas de variable están soportados
(constante de macro) |
|
__cpp_lib_experimental_invocation_type
|
un valor de al menos
201406
indica que los rasgos de tipo de invocación están soportados
(constante de macro) |
|
Definido en el encabezado
<experimental/functional>
|
|
|
__cpp_lib_experimental_boyer_moore_searching
|
un valor de al menos
201411
indica que los algoritmos de búsqueda adicionales están soportados
(constante de macro) |
|
__cpp_lib_experimental_function_erased_allocator
|
un valor de al menos
201406
indica que el asignador de memoria con tipo borrado para std::function está soportado
(constante de macro) |
|
Definido en el encabezado
<experimental/future>
|
|
|
__cpp_lib_experimental_promise_erased_allocator
|
un valor de al menos
201406
indica que el asignador de memoria con tipo borrado para std::promise está soportado
(constante de macro) |
|
__cpp_lib_experimental_packaged_task_erased_allocator
|
un valor de al menos
201406
indica que el asignador de memoria con tipo borrado para std::packaged_task está soportado
(constante de macro) |
|
Definido en el encabezado
<experimental/memory>
|
|
|
__cpp_lib_experimental_shared_ptr_arrays
|
un valor de al menos
201406
indica que los arrays de shared_ptr están soportados
(constante de macro) |
|
Definido en el encabezado
<experimental/memory_resource>
|
|
|
__cpp_lib_experimental_memory_resources
|
un valor de al menos
201402
indica que los recursos de memoria polimórficos están soportados
(constante de macro) |
|
Definido en el encabezado
<experimental/algorithm>
|
|
|
__cpp_lib_experimental_sample
|
un valor de
201402
indica que el algoritmo sample está soportado
(constante de macro) |
Integrado en C++17
Los siguientes componentes de ISO/IEC TS 19568:2015 fueron incluidos en C++17.
objetos opcionales
|
Definido en el encabezado
<experimental/optional>
|
|
|
una plantilla de clase que representa
objetos opcionales
(plantilla de clase) |
|
clase
any
|
Definido en el encabezado
<experimental/any>
|
|
|
un contenedor type-safe para valores individuales de cualquier tipo
(clase) |
|
string_view
|
Definido en el encabezado
<experimental/string_view>
|
|
|
una referencia no propietaria a una cadena
(plantilla de clase) |
|
Asignadores polimórficos y con borrado de tipo
Asignadores polimórficos y recursos de memoria
Las entidades en esta sección se declaran en el std::experimental::pmr namespace.
|
Definido en el encabezado
<experimental/memory_resource>
|
|
|
una interfaz abstracta para clases que encapsulan recursos de memoria
(clase) |
|
|
un
memory_resource
seguro para hilos que gestiona asignaciones en grupos de diferentes tamaños de bloque
(clase) |
|
|
un
memory_resource
no seguro para hilos que gestiona asignaciones en grupos de diferentes tamaños de bloque
(clase) |
|
|
un
memory_resource
de propósito especial que libera la memoria asignada solo cuando se destruye el recurso
(clase) |
|
|
un asignador que soporta polimorfismo en tiempo de ejecución basado en el
memory_resource
con el que se construye
(plantilla de clase) |
|
retorna un
memory_resource
estático de ámbito de programa que utiliza el
operator new
global y el
operator delete
para asignar y liberar memoria
(función) |
|
retorna un
memory_resource
estático que no realiza ninguna asignación
(función) |
|
obtiene el
memory_resource
predeterminado
(función) |
|
establece el
memory_resource
predeterminado
(función) |
|
Alias de conveniencia para contenedores que utilizan allocators polimórficos
Alias de conveniencia y plantillas de alias
para contenedores que utilizan asignadores polimórficos se proporcionan en el
std::experimental::pmr
espacio de nombres para las siguientes plantillas de clase en la biblioteca estándar:
| Lista de plantillas de contenedores para las cuales se proporcionan alias de conveniencia |
|---|
|
Definido en el encabezado
<experimental/memory>
|
|
| Clase | Descripción |
|
una versión modificada de
std::shared_ptr
que admite arrays
(plantilla de clase) |
|
|
una versión modificada de
std::weak_ptr
que admite arrays
(plantilla de clase) |
|
Algoritmos de muestreo y búsqueda
|
Definido en el encabezado
<experimental/algorithm>
|
|
|
selecciona n elementos aleatorios de una secuencia
(plantilla de función) |
|
|
aplica un Buscador a una secuencia
(plantilla de función) |
|
|
Definido en el encabezado
<experimental/functional>
|
|
|
implementación del algoritmo de búsqueda estándar de la biblioteca C++
(plantilla de clase) |
|
|
función auxiliar para crear un default_searcher
(plantilla de función) |
|
|
implementación del algoritmo de búsqueda Boyer-Moore
(plantilla de clase) |
|
|
función auxiliar para crear un boyer_moore_searcher
(plantilla de función) |
|
|
implementación del algoritmo de búsqueda Boyer-Moore-Horspool
(plantilla de clase) |
|
|
función auxiliar para crear un boyer_moore_horspool_searcher
(plantilla de función) |
|
Utilidades generales
|
Definido en el encabezado
<experimental/tuple>
|
|
|
llama a una función con una tupla de argumentos
(plantilla de función) |
|
Además, el TS proporciona
numerosas
constexpr
plantillas de variables
para los siguientes rasgos de tipo y otras plantillas de clase en la biblioteca estándar: