"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puede C ++ lograr borrado de tipo: una comparación de las técnicas?

¿Cómo puede C ++ lograr borrado de tipo: una comparación de las técnicas?

Publicado el 2025-02-07
Navegar:212

How Can C   Achieve Type Erasure: A Comparison of Techniques?

escribe técnicas de borrado en c

ERASURE en C se refiere a la técnica de ocultar parte o la totalidad de la información de tipo con respecto a una clase, similar a Boost.any. Aquí hay varios enfoques de borrado de tipo:

Funciones virtuales

Las funciones virtuales son una técnica clásica donde abstrae la implementación de una clase dentro de una jerarquía de clases basada en interfaz. Este enfoque es adoptado por muchas bibliotecas de Boost, como Boost.Anly and Boost.shared_ptr, para ocultar tipos o mecanismos de desastre.

Pointers con funciones templadas

que implica usar punteros de funciones de función utilizando funciones con funciones templadas, mientras almacena el objeto real en un puntero vacío*. Boost.function utiliza esta técnica para ocultar el tipo real de un functor.

Based de plantilla Borrure sin funciones virtuales o void* manipulación

por ejemplo, el enfoque de GMAN utiliza plantillas para ocultar tipos reales sin recurrir a funciones virtuales o void* manipulación.

shared_ptr

shared_ptr es una técnica particularmente intrigante. Aprovecha las plantillas de función en el constructor shared_ptr para almacenar cualquier dato y llamar adecuadamente al destructor correcto al final. A pesar de su simplicidad, este enfoque ofrece comodidad al empaquetar el concepto tradicional de borrado de tipo void*/function-pointer.

comparación de técnicas

todos los tipo de técnicas de borrado en c emplean punteros de funciones y pidters nulo* , con la principal diferencia en la provisión de azúcar semántica.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3