Tags · martinus/unordered_dense · GitHub
Skip to content

Tags: martinus/unordered_dense

Tags

v4.9.1

Toggle v4.9.1's commit message
bump version to 4.9.1

Patch bump: fixes the quadratic insert cost that v4.9.0's
exception-safety work introduced in segmented_vector's block index
growth.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

v4.9.0

Toggle v4.9.0's commit message
Ask the trait everywhere the marker is read

Cleanup pass over the two commits below.

The std::hash fallback was still reading std::hash<T>::is_avalanching itself,
which left two readers of the marker where the point of the change was to have
one -- and the second understood only the `= void` spelling. A std::hash marked
the way Boost asks, or one named avalanching by a specialization because it
cannot be edited, did not reach the table: both answered no. Both now answer
yes, and there are tests that fail without the fix.

Making the fallback ask meant the trait had to be defined above it, so the
detection machinery it needs moved up with it, next to the hashes rather than
several hundred lines below them.

The four-way reading of the marker is now one constexpr function rather than
five class templates, which also gives it somewhere to say the other thing a
reader gets wrong:

    static constexpr bool is_avalanching = true;   // a value, not a type

which used to answer "not avalanching" and say nothing about why.

require_avalanching says what it means when the hash is final rather than
letting the error come from the base class list, and takes a stateful hash by
value as well as braced. Its README paragraph claimed the check survives the
hash being "swapped for another"; it survives my_hash being reimplemented
without its marker, which is not the same thing and is what it now says.

custom_hash's static_asserts asked the private detector; they ask the trait
now, which is the contract and is what would have caught the fallback.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CxhyeMXim7Pvb8SmYoEdBk

v4.8.1

Toggle v4.8.1's commit message
refactor: improve linter execution with concurrent processing, better…

… output

v4.8.0

Toggle v4.8.0's commit message
refactor: clean up linter scripts

v4.7.0

Toggle v4.7.0's commit message
Add GitHub Copilot instructions for ankerl::unordered_dense

Fully generated with Claude Sonnet 4.5

v4.6.0

Toggle v4.6.0's commit message
Bump version to 4.6.0 in CMakeLists.txt, header file, and Meson build…

… configuration

v4.5.0

Toggle v4.5.0's commit message
Adds ANKERL_UNORDERED_DENSE_DISABLE_PMR, fixes #109