C++ standard libraries extensions, version 2
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 :
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) |
|