Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
知りたいのですが、QVariantが内部的に、int、QMap、QListなどを格納する方法...
内部データ構造/実装とは何ですか?QVariantで型(int、float)を格納および取得するオーバーヘッドはどれくらいですか?
コードをざっと見てみると、aQVariantは基本的unionにいくつかのプリミティブ型(intなどfloat)、QObjectポインター、およびaでもプリミティブvoid*でもない他のものへのポインターであることがわかりQObjectます。現在そこに実際に何が格納されているかを知ることができる型データメンバーもあります。オーバーヘッドは、構造体のメンバーに格納し、型の互換性をチェックし、場合によっては変換(たとえば、intからfloat)を行うだけのようです。
QVariant
union
int
float
QObject
void*