I need to implement a set of sets in my application.
Using QSet with a custom class requires providing a qHash() function and an operator==.
A common way to hash containers is to combine the hashes of all elements. Boost provides hash_combine and hash_range for this purpose. This should give you an idea how to implement this for the results of your qHash.
So, given your qHash for Custom:
uint qHash(const QSet& c) {
uint seed = 0;
for(auto x : c) {
seed ^= qHash(x) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
}
return seed;
}