Some time ago, I wrote a post about integrating Qt’s associative containers with the fancy new C++ features, range-based for loops with structured bindings.
That post inspired KDAB’s own Giuseppe D’Angelo to add the
asKeyValueRange
member function to both QHash
and QMap
. Now it’s possible to iterate over them with a
simple range-based for loop, like so:
for (auto [key, value] : map.asKeyValueRange()) {
// ...
}
The second part of my previous post demonstrates how we can iterate over Qt SQL results using a range-based for loop as if it were an ordinary collection.
This post covers what is needed to be able to traverse the SQL results in a much nicer and safer way like so:
for (auto [active, name, team] : QSqlResultTypedRange<bool, QString, QString>(query)) {
qDebug() << "active(bool):" << active;
qDebug() << "name(QString):" << name;
qDebug() << "team(QString):" << team;
}