Question

Je veux savoir comment Qvariant peut stores en interne, int, qmap, qlist, ...

Je veux dire quelle est la structure / implémentation interne? Quelle est la surcharge du stockage et de la récupération des types (int, float) dans Qvariant?

Était-ce utile?

La solution

Un rapide coup d'œil au code révèle qu'un QVariant est essentiellement un union de plusieurs types primitifs (int, float etc '), un QObject pointeur, et un void* pointeur pour tout ce qui n'est pas un QObject et pas une primitive. Il existe également un membre de Data qui lui permet de savoir ce qui y est actuellement stocké. Les frais généraux ne semblent pas être bien plus que de stocker à un membre d'une structure, vérifiant cela pour la compatibilité du type et éventuellement une conversion (int en flottant par exemple)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top