to clarify @mrjj solution, which is 100% right inline uint qHash(const CVexOnSec &t, uint seed) { return qHash(t.pos.x()); } should become inline uint qHash(const CVexOnSec &t, uint seed) { return qHash(t.pos.x(),seed); }