Namespaces
Variants

Utility library

From cppreference.net
Utilities 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.

Contenidos

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>
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>
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)
el tipo de resultado de comparación de tres vías que admite los 6 operadores, no es sustituible y permite valores incomparables
(clase)
el tipo de resultado de comparación de tres vías que admite los 6 operadores y no es sustituible
(clase)
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)
objeto función restringido que implementa x <=> y
(clase)
obtiene el tipo de resultado del operador de comparación de tres vías <=> en los tipos dados
(plantilla de clase)
la categoría de comparación más fuerte a la que se pueden convertir todos los tipos dados
(plantilla de clase)
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)
realiza una comparación de tres vías y produce un resultado de tipo std::partial_ordering
(objeto punto de personalización)
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)
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)
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>
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)
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)
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)
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
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)
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)
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)
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