unordered_dense v5.0.1
Permanent link:
cppdashboard.dev/r/2026/09/unordered-dense-v5-0-1A fast & densely stored hashmap and hashset
Release notes
`slots` is a macro in Qt, so 5.0.0 did not compile in any translation unit that has seen a Qt header. `qobjectdefs.h` defines it empty unless you set `QT_NO_KEYWORDS`, and `detail::group_storage` had a private member with that name. Thanks to @dkprice for the report in #289. That member is now `slots_per_group`, which is what `table` already called the same expression 40 lines further down. It is private, so nothing a user can name changed, and the generated code is the same: I compiled a probe translation unit at `-O2` against both headers, with clang and with gcc, and got byte-identical objects. `test/unit/qt_keywords.cpp` holds it there. It defines `slots`, `signals` and `emit` and then includes the header, so the next identifier of that name breaks the build here instead of in your project. No other identifier in the three public headers collides with a macro from Qt, `windows.h`, X11 or `sys/sysmacros.h`, I checked that against roughly 50 real macro definitions taken from those headers. Nothing else changed. Same API, same hash values, same iteration order, so 5.0.0 to 5.0.1 is a drop-in replacement of the header.
Share this resource