Skip to main content
IBM Quantum Platform

Sistema de tipado dinámico

En varios lugares de Qiskit es posible definir en tiempo de ejecución tipos y comportamientos adicionales. Estos utilizan un conjunto coherente de métodos y funciones auxiliares de tipado dinámico para declarar dichos objetos e interactuar con ellos.

QkVtableEntry

struct QkVtableEntry

Una entrada en una tabla virtual para definir objetos con un comportamiento personalizado.

Esta misma estructura se utiliza en varios casos a la hora de definir un «comportamiento personalizado» para los objetos de forma dinámica durante la ejecución de tu programa en C. Los valores válidos de slot, y flag el tipo de puntero a función de ptr variarán en función del contexto en el que se pasen.

Por lo general, se definen las variables estáticas del programa como tablas de este tipo, que terminan con el valor centinela {-1, 0, NULL}. Varias funciones de la API en C de Qiskit admiten argumentos de este tipo y devuelven un identificador de «vtable», que luego se puede utilizar para definir «instancias» del objeto con este comportamiento asociado.

ranura de tipo uint32_t

La «ranura» de la función, o el centinela (uint32_t)-1 que marca la última entrada de la matriz.

Normalmente se establece en un valor enum determinado, en el que ese valor concreto varía enum en función de la tabla de variables (vtable) que se esté definiendo.

Indicadores de uint32_t

Cualquier «indicador» adicional para esa entrada concreta de la tabla. Normalmente se combinan mediante la operación OR (|), y el usuario de la tabla documentará el conjunto válido de indicadores.

void *ptr

Un puntero a función que implemente la firma correcta para la combinación de y slot flags.

Esto solo NULL puede ocurrir en el caso de que sea slots el centinela -1.

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.