Namespaces
Variants

C++ standard libraries extensions, version 2

From cppreference.net

La versión 2 de las Extensiones de C++ para Fundamentos de Biblioteca, ISO/IEC TS 19568:2017, define los siguientes componentes nuevos para la biblioteca estándar de C++, además de los definidos en versión 1 :

Contenidos

El modismo de detección de C++

Definido en el encabezado <experimental/type_traits>
plantillas de alias que detectan si un template-id está bien formado
(plantilla de alias)
tipo de clase retornado por detected_t en caso de fallo
(clase)

Un envoltorio de propagación const para objetos similares a punteros

Definido en el encabezado <experimental/propagate_const>
un contenedor de propagación constante para objetos similares a punteros
(plantilla de clase)

Punteros no propietarios

Definido en el encabezado <experimental/memory>
una clase que representa un puntero no propietario
(plantilla de clase)

std::array creación

Definido en el encabezado <experimental/array>
(library fundamentals TS v2)
crea un objeto std::array cuyo tamaño y opcionalmente el tipo de elemento se deducen de los argumentos
(plantilla de función)

ostream_joiner

Definido en el encabezado <experimental/iterator>
un iterador de salida que escribe elementos sucesivos en un flujo de salida, separando elementos adyacentes con un delimitador
(plantilla de clase)

Instalaciones simples para generación de números aleatorios

Un motor por hilo de tipo std::default_random_engine , inicializado a un estado impredecible, se mantiene para cada hilo y es utilizado por las funciones siguientes.

Definido en el encabezado <experimental/random>
genera un entero aleatorio en el rango especificado
(plantilla de función)
reinicia el motor aleatorio por hilo
(función)
Definido en el encabezado <experimental/algorithm>
selecciona n elementos aleatorios de una secuencia
(plantilla de función)
reordena aleatoriamente elementos en un rango
(plantilla de función)

Macros de prueba de características

Definido en el encabezado <experimental/type_traits>
__cpp_lib_experimental_logical_traits
un valor de al menos 201511 indica que los traits de tipo de operadores lógicos están soportados
(constante de macro)
__cpp_lib_experimental_detect
un valor de al menos 201505 indica que la expresión de detección está soportada
(constante de macro)
Definido en el encabezado <experimental/propagate_const>
__cpp_lib_experimental_propagate_const
un valor de al menos 201505 indica que propagate_const está soportado
(constante de macro)
Definido en el encabezado <experimental/functional>
__cpp_lib_experimental_not_fn
un valor de al menos 201406 indica que not_fn está soportado
(constante de macro)
Definido en el encabezado <experimental/memory>
__cpp_lib_experimental_observer_ptr
un valor de al menos 201411 indica que observer_ptr está soportado
(constante de macro)
Definido en el encabezado <experimental/array>
__cpp_lib_experimental_make_array
un valor de al menos 201505 indica que make_array está soportado
(constante de macro)
Definido en el encabezado <experimental/iterator>
__cpp_lib_experimental_ostream_joiner
un valor de al menos 201411 indica que ostream_joiner está soportado
(constante de macro)
Definido en el encabezado <experimental/vector>
__cpp_lib_experimental_erase_if
un valor de al menos 201411 indica que el borrado uniforme de contenedores está soportado
(constante de macro)
Definido en el encabezado <experimental/numeric>
__cpp_lib_experimental_gcd_lcm
un valor de al menos 201411 indica que gcd y lcm están soportados
(constante de macro)
Definido en el encabezado <experimental/random>
__cpp_lib_experimental_randint
un valor de al menos 201511 indica que randint y las funciones relacionadas están soportadas
(constante de macro)
Definido en el encabezado <experimental/source_location>
__cpp_lib_experimental_source_location
un valor de al menos 201505 indica que source_location está soportado
(constante de macro)

Incorporado en C++17

Los siguientes componentes de la biblioteca fundamentals v2 han sido adoptados en el estándar C++17.

Definido en el encabezado <experimental/type_traits>
plantilla de alias variádica para void
(plantilla de alias)
Definido en el encabezado <experimental/type_traits>
metafunción AND lógica variádica
(plantilla de clase)
metafunción OR lógica variádica
(plantilla de clase)
metafunción NOT lógica
(plantilla de clase)
Definido en el encabezado <experimental/functional>
crea un objeto función que devuelve el complemento del resultado del objeto función que contiene
(plantilla de función)
Definido en el encabezado <experimental/numeric>
constexpr plantilla de función que devuelve el máximo común divisor de dos enteros
(plantilla de función)
constexpr plantilla de función que devuelve el mínimo común múltiplo de dos enteros
(plantilla de función)

Incorporado en C++20

Los siguientes componentes de la biblioteca fundamentals v2 han sido adoptados en el estándar C++20.

Eliminación uniforme de contenedores

Definido en el encabezado <experimental/string>
elimina todos los elementos iguales a un valor específico de un std::basic_string
(plantilla de función)
borra todos los elementos que satisfacen un predicado de un std::basic_string
(plantilla de función)
Definido en el encabezado <experimental/deque>
elimina todos los elementos iguales a un valor específico de un std::deque
(plantilla de función)
elimina todos los elementos que satisfacen un predicado de un std::deque
(plantilla de función)
Definido en el encabezado <experimental/vector>
elimina todos los elementos iguales a un valor específico de un std::vector
(plantilla de función)
elimina todos los elementos que satisfacen un predicado de un std::vector
(plantilla de función)
Definido en el encabezado <experimental/forward_list>
elimina todos los elementos iguales a un valor específico de un std::forward_list
(plantilla de función)
elimina todos los elementos que satisfacen un predicado de un std::forward_list
(plantilla de función)
Definido en el encabezado <experimental/list>
elimina todos los elementos iguales a un valor específico de una std::list
(plantilla de función)
elimina todos los elementos que satisfacen un predicado de un std::list
(plantilla de función)
Definido en el encabezado <experimental/map>
elimina todos los elementos que satisfacen un predicado de un std::map
(plantilla de función)
elimina todos los elementos que satisfacen un predicado de un std::multimap
(plantilla de función)
Definido en el encabezado <experimental/set>
elimina todos los elementos que satisfacen un predicado de un std::set
(plantilla de función)
elimina todos los elementos que satisfacen un predicado de un std::multiset
(plantilla de función)
Definido en el encabezado <experimental/unordered_map>
elimina todos los elementos que satisfacen un predicado de un std::unordered_map
(plantilla de función)
elimina todos los elementos que satisfacen un predicado de un std::unordered_multimap
(plantilla de función)
Definido en el encabezado <experimental/unordered_set>
elimina todos los elementos que satisfacen un predicado de un std::unordered_set
(plantilla de función)
elimina todos los elementos que satisfacen un predicado de un std::unordered_multiset
(plantilla de función)

Captura de información del código fuente

Definido en el encabezado <experimental/source_location>
una clase que representa información sobre el código fuente, como nombres de archivo, números de línea y nombres de función
(clase)

std::array conversión

Definido en el encabezado <experimental/array>
crea un objeto std::array a partir de un array incorporado
(plantilla de función)