Impulse los módulos de impulso de uso común que se han agregado a la biblioteca estándar de C ++

Muchas bibliotecas comúnmente utilizadas por Boost se han incluido en C++ 11, C++ 14 o C++ 17. Este artículo resume los módulos de impulso que se agregaron a la biblioteca estándar de C++.

Biblioteca de funciones comunes:

  • La biblioteca crono sobre el tiempo se ha agregado al estándar C++11;
  • La biblioteca aleatoria para números aleatorios se ha agregado al estándar C++11;
  • La biblioteca de expresiones regulares para expresiones regulares se ha agregado al estándar C++11.

Gestión de la memoria:

en su mayoría punteros inteligentes

  • scoped_ptr y scoped_array, correspondientes a unique_ptr en c++11 ;
  • shared_ptr, se ha agregado al estándar c++11;
  • débil_ptr, se ha agregado al estándar c ++ 11;
  • shared_array, en la mayoría de los casos, shared_ptr o vector<shared_ptrt> se pueden usar en su lugar.

Utilidades:

  • no copiable, lo que permite que los programas implementen fácilmente una clase que prohíba la copia. Establece el constructor de copias y la función de asignación de copias como privadas, prohibiendo la copia y la asignación. Establezca el constructor predeterminado
    en protected para prohibir la producción directa de objetos no copiables sin sentido.
  • ignore_unused, usando plantillas de parámetros variables, puede admitir cualquier cantidad de variables de cualquier tipo y "usarlas" como parámetros de función para lograr exactamente el mismo efecto que (void)var
    . Pero su nombre es más claro, su método de escritura es más simple y, debido a que es una función en línea, no hay pérdida de eficiencia en tiempo de ejecución.
  • uuid, utilizado para generar un UUID global único.

Contenedores y estructuras de datos:

  • La matriz de clase de matriz de longitud fija se ha agregado al estándar C++11;
  • Los contenedores hash (contenedores asociativos no ordenados) unordered_set, unordered_mulitset, unordered_map, unordered_multimap se han agregado al estándar C++11;
  • Tuple, que se ha añadido al estándar C++11;
  • any, sirve para alojar cualquier tipo de elemento. Se ha agregado al estándar C++17;
  • Búfer circular circular_buffer.

Funciones y devoluciones de llamada:

  • La biblioteca ref define un contenedor muy pequeño y simple para los tipos de referencia que se pueden usar para pasar por referencia. Añadido al estándar C++11.
  • La biblioteca bind es una generalización y mejora del adaptador de función bind1st/bind2nd en el estándar C++98, que puede adaptarse a cualquier objeto invocable, incluidos punteros de función, referencias de función, punteros de función miembro y objetos de función
    . Añadido al estándar C++11.
  • function es un "contenedor" de objetos de función, conceptualmente como la generalización de los tipos de puntero de función en C/C++, y es una especie de "puntero de función inteligente". Encapsula el
    puntero de función original o el objeto de función en forma de objeto y puede acomodar cualquier objeto invocable que se ajuste a la firma de la función. Por lo tanto, se puede utilizar como mecanismo de devolución de llamada para almacenar temporalmente funciones u objetos de función y llamarlos más tarde cuando sea necesario, lo que hace que el mecanismo de devolución de llamada sea más flexible. Añadido al estándar C++11.

Programación simultánea:

  • atomic implementa operaciones atómicas. Encapsula las primitivas operativas subyacentes de diferentes equipos informáticos, proporciona funciones de operación atómica multiplataforma y nos permite deshacernos por completo del problema de leer y escribir variables en la programación concurrente
    . Añadido al estándar C++11.
  • La biblioteca de subprocesos implementa la representación de subprocesos en el sistema operativo, asigna valores para iniciar y administra objetos de subprocesos. Añadido al estándar C++11.
  • La biblioteca asio encapsula select, kqueue, poll/epoll, E/S superpuestas y otros mecanismos del sistema operativo basados ​​en el modelo proactor, y realiza el modelo IO asíncrono.

referencia

"Guía de desarrollo completa para la biblioteca Boost"
Biblioteca Baidu: https://wenku.baidu.com/view/64baefde740bf78a6529647d27284b73f2423695.html

Supongo que te gusta

Origin blog.csdn.net/stallion5632/article/details/125815760
Recomendado
Clasificación