Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How QVariant Works Internally?

Tags:

qt

qvariant

I want to know, How QVariant can internally stores, int, QMap, QList,...

I mean what is the internal data-structure/Implementation? What is the overhead of storing and retrieving types (int, float) in QVariant?

like image 351
SunnyShah Avatar asked Feb 13 '11 11:02

SunnyShah


1 Answers

A quick look at the code reveals that a QVariant is basically a union of several primitive types (int, float etc'), a QObject pointer, and a void* pointer for anything else that is not a QObject and not a primitive. There is also a type data member that allows it to know what's actually currently stored there. The overhead appears to be not much more than storing to a member of a struct, checking that for type compatibility and possibly making a conversion (int to float for instance)

like image 192
shoosh Avatar answered Nov 16 '22 02:11

shoosh