Is it possible to use QPointer with QHash?
QPointer<QHash<QString, QPointer<QStringList>> > pHash;
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
QPointer can only be used with QObject subclasses. Thus it cannot be used with QHash or QStringList, as both aren’t QObject’s. If the code above compiles for you, that’s probably because you don’t use pHash yet? Even initializing such a QPointer, e.g.
gives errors like the following one (gcc):
If you really need (smart) pointers to containers, try QSharedPointer, which doesn’t require the contained object to be of any specific type.
Usually one creates containers on the stack though, creating them on the heap is unidiomatic and unnecessary in almost all cases. Qt’s containers are implicitly shared, thus copying them is cheap.