¿Cuáles son los casos de uso de la vida real para punteros etiquetados?
Esto proviene principalmente de la lectura sobre pequeños sistemas de 64 bits y posibles usos de punteros de palabras de 64 bits .
Según tengo entendido, los punteros etiquetados son direcciones que pueden contener información adicional en bits debido al posible espacio de direcciones en esa arquitectura particular que es mucho más pequeña.
Pero entonces, ¿es posible usar punteros etiquetados más allá de los casos triviales? ¿Alguna idea genial / ejemplos?
¿Existen bibliotecas populares, marcos que aprovechan los punteros de 64 bits a través de punteros etiquetados? ¿Es eso posible en cada hardware?
Respuestas:
La biblioteca critbit trie utiliza punteros etiquetados para diferenciar entre nodos internos y externos en el trie. Al asegurarse de que los nuevos nodos se asignen alineados a un determinado valor, se garantiza que algunos de los bits más bajos de la dirección son cero, cuyo número depende de la alineación que necesite. Luego puede almacenar otra información en estos bits ... en el caso de los nodos críticos, el LSB se establece si el nodo es externo (una hoja). Solo recuerde desetiquetar la dirección si tiene la intención de usarla.
Ahorra tener una variable miembro adicional en la estructura del nodo.
fuente