Utility library
C++ incluye una variedad de bibliotecas de utilidad que proporcionan funcionalidades que van desde bit-counting hasta partial function application . Estas bibliotecas pueden dividirse ampliamente en dos grupos:
- bibliotecas de soporte de lenguaje, y
- bibliotecas de propósito general.
Soporte de idiomas
Las bibliotecas de soporte de lenguaje proporcionan clases y funciones que interactúan estrechamente con características del lenguaje y soportan expresiones idiomáticas comunes del lenguaje.
Propiedades de implementación (desde C++20)
El encabezado <version> proporciona información dependiente de la implementación sobre la biblioteca estándar de C++ (como el número de versión y fecha de lanzamiento). También define las macros de prueba de características de la biblioteca .
Soporte de tipos
Tipos básicos (p. ej. std::size_t , std::nullptr_t ), RTTI (p. ej. std::type_info )
Utilidades de programa
Terminación (por ej. std::abort , std::atexit ), entorno (por ej. std::system ), señales (por ej. std::raise ).
Gestión de memoria dinámica
Punteros inteligentes (por ejemplo, std::shared_ptr ), asignadores de memoria (por ejemplo, std::allocator o std::pmr::memory_resource ), gestión de memoria estilo C (por ejemplo, std::malloc ).
Manejo de errores
Excepciones (por ejemplo std::exception , std::terminate ), aserciones (por ejemplo assert ).
Funciones variádicas
Soporte para funciones que toman un número arbitrario de parámetros (mediante p.ej. va_start , va_arg , va_end ).
Listas de inicialización (desde C++11)
|
Definido en el encabezado
<initializer_list>
|
|
|
(C++11)
|
referencia un array temporal creado en
list-initialization
(plantilla de clase) |
Captura de información del código fuente (desde C++20)
|
Definido en el encabezado
<source_location>
|
|
|
(C++20)
|
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) |
Comparación de tres vías (desde C++20)
|
Definido en el encabezado
<compare>
|
|
|
especifica que el operador
<=>
produce un resultado consistente en los tipos dados
(concepto) |
|
|
(C++20)
|
el tipo de resultado de comparación de tres vías que admite los 6 operadores, no es sustituible y permite valores incomparables
(clase) |
|
(C++20)
|
el tipo de resultado de comparación de tres vías que admite los 6 operadores y no es sustituible
(clase) |
|
(C++20)
|
el tipo de resultado de comparación de tres vías que admite los 6 operadores y es sustituible
(clase) |
|
funciones de comparación con nombre
(función) |
|
|
(C++20)
|
objeto función restringido que implementa
x
<=>
y
(clase) |
|
(C++20)
|
obtiene el tipo de resultado del operador de comparación de tres vías
<=>
en los tipos dados
(plantilla de clase) |
|
(C++20)
|
la categoría de comparación más fuerte a la que se pueden convertir todos los tipos dados
(plantilla de clase) |
|
(C++20)
|
realiza una comparación de tres vías y produce un resultado de tipo
std::strong_ordering
(objeto punto de personalización) |
|
(C++20)
|
realiza una comparación de tres vías y produce un resultado de tipo
std::weak_ordering
(objeto punto de personalización) |
|
(C++20)
|
realiza una comparación de tres vías y produce un resultado de tipo
std::partial_ordering
(objeto punto de personalización) |
|
(C++20)
|
realiza una comparación de tres vías y produce un resultado de tipo
std::strong_ordering
, incluso si
operator
<=>
no está disponible
(objeto punto de personalización) |
|
(C++20)
|
realiza una comparación de tres vías y produce un resultado de tipo
std::weak_ordering
, incluso si
operator
<=>
no está disponible
(objeto punto de personalización) |
|
(C++20)
|
realiza una comparación de tres vías y produce un resultado de tipo
std::partial_ordering
, incluso si
operator
<=>
no está disponible
(objeto punto de personalización) |
Soporte para corrutinas (desde C++20)
Tipos para coroutine (por ejemplo std::coroutine_traits , std::coroutine_handle ).
Soporte de contratos (desde C++26)
Tipos para contract support (por ejemplo std::contracts::contract_violation ).
Utilidades de propósito general
Intercambiar
|
Definido en el encabezado
<utility>
|
|
|
intercambia los valores de dos objetos
(plantilla de función) |
|
|
(C++14)
|
reemplaza el argumento con un nuevo valor y devuelve su valor anterior
(plantilla de función) |
|
Definido en el encabezado
<concepts>
|
|
|
(C++20)
|
intercambia los valores de dos objetos
(objeto de punto de personalización) |
Operaciones de tipos (desde C++11)
|
Definido en el encabezado
<utility>
|
|
|
(C++11)
|
reenvía un argumento de función y utiliza el argumento de plantilla de tipo para preservar su categoría de valor
(plantilla de función) |
|
(C++23)
|
reenvía un argumento de función como si se convirtiera a la categoría de valor y constancia de la expresión del tipo de argumento de plantilla especificado
(plantilla de función) |
|
(C++11)
|
convierte el argumento a un xvalue
(plantilla de función) |
|
(C++11)
|
convierte el argumento a un xvalue si el constructor de movimiento no lanza excepciones
(plantilla de función) |
|
(C++17)
|
obtiene una referencia
const
a su argumento
(plantilla de función) |
|
(C++11)
|
obtiene una referencia a un objeto del tipo de argumento de plantilla para usar en un contexto no evaluado
(plantilla de función) |
|
(C++23)
|
convierte una enumeración a su tipo subyacente
(plantilla de función) |
Funciones de comparación de enteros (desde C++20)
|
Definido en el encabezado
<utility>
|
|
|
compara dos valores enteros, asegurando que los números negativos con signo sean menores que los números sin signo
(plantilla de función) |
|
|
(C++20)
|
verifica si un valor entero está en el rango de un tipo entero dado
(plantilla de función) |
Operadores relacionales (hasta C++20)
|
Definido en el encabezado
<utility>
|
|
|
Definido en el espacio de nombres
std::rel_ops
|
|
|
(obsoleto en C++20)
|
genera automáticamente operadores de comparación basados en
operator
==
y
operator
<
definidos por el usuario
(plantilla de función) |
Etiquetas de construcción (desde C++11)
|
Definido en el encabezado
<utility>
|
|
|
etiqueta de construcción por partes
(etiqueta) |
|
|
etiqueta de construcción in situ
(etiqueta) |
|
|
(C++26)
|
etiqueta de construcción de valor
(etiqueta) |
Pairs y tuples
|
Definido en el encabezado
<utility>
|
|
|
implementa tupla binaria, es decir, un par de valores
(plantilla de clase) |
|
|
Definido en el encabezado
<tuple>
|
|
|
(C++11)
|
implementa contenedor de tamaño fijo que almacena elementos de posiblemente diferentes tipos
(plantilla de clase) |
|
(C++17)
|
llama a una función con una tupla de argumentos
(plantilla de función) |
|
(C++17)
|
construye un objeto con una tupla de argumentos
(plantilla de función) |
Protocolo de tupla (desde C++11) |
|
|
Definido en el encabezado
<tuple>
|
|
|
Definido en el encabezado
<utility>
|
|
|
Definido en el encabezado
<array>
|
|
|
Definido en el encabezado
<ranges>
|
|
|
Definido en el encabezado
<complex>
|
|
|
(C++11)
|
obtiene el número de elementos de un tipo similar a tupla
(plantilla de clase) |
|
(C++11)
|
obtiene los tipos de elementos de un tipo similar a tupla
(plantilla de clase) |
Tipos suma y wrappers con borrado de tipo (desde C++17)
|
Definido en el encabezado
<optional>
|
|
|
(C++17)
|
un contenedor que puede o no contener un objeto
(plantilla de clase) |
|
Definido en el encabezado
<expected>
|
|
|
(C++23)
|
un contenedor que contiene un valor esperado o un error
(plantilla de clase) |
|
Definido en el encabezado
<variant>
|
|
|
(C++17)
|
una unión discriminada con seguridad de tipos
(plantilla de clase) |
|
Definido en el encabezado
<any>
|
|
|
(C++17)
|
objetos que contienen instancias de cualquier tipo
CopyConstructible
(clase) |
Bitset
|
Definido en el encabezado
<bitset>
|
|
|
implementa un arreglo de bits de longitud constante
(plantilla de clase) |
|
Manipulación de bits (desde C++20)
El encabezado <bit> proporciona varias plantillas de función para acceder, manipular y procesar bits individuales y secuencias de bits. El orden de bytes ( endianness ) de los tipos escalares puede inspeccionarse mediante la std:: endian facility.
Objetos de función (desde C++11)
Aplicación parcial de funciones (por ejemplo, std::bind ) y utilidades relacionadas: utilidades para enlazar como std::ref y std::placeholders , envoltorios de función polimórficos: std::function , functores predefinidos (por ejemplo, std::plus , std::equal_to ), convertidores de puntero-a-miembro a función std::mem_fn .
Soporte de Hash (desde C++11)
|
Definido en el encabezado
<functional>
|
|
|
(C++11)
|
objeto función hash
(plantilla de clase) |
Véase también
|
Documentación de C
para
Biblioteca de utilidades
|