Hashable should take type index into account
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 384
- Forks
- 96
- PR merge metrics
- No merged PRs in 30d
Description
Hashing a variant should take the type index / `.which()` into account in addition to the underlying hash
- https://github.com/mapbox/variant/blob/02bd1ac4c07e6db9fe0f01267853e43b41637b74/include/mapbox/variant.hpp#L1002-L1011
- https://github.com/mapbox/variant/blob/02bd1ac4c07e6db9fe0f01267853e43b41637b74/include/mapbox/variant.hpp#L536-L544
Why? Because of the edge case where the underlying hash is the same but the type index is not.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in include/mapbox/variant.hpp at lines 1002-1011 and 536-544, where variant hashing and type-index access are referenced. Ensure the hash accounts for both the underlying value hash and `.which()` so variants with equal value hashes but different type indexes do not collide.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 35/100