Namespaces
Variants

C++ standard libraries extensions

From cppreference.net

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

Soporte para arreglos de shared_ptr

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:

Lista de rasgos de tipo y otras plantillas de clase para las cuales se proporcionan plantillas de variables